2009-09-30 21 views
6

Şu an bir süredir güvendeyim. Çok fazla mem kullanan bir uygulama var ve gerçekten de LargeAddressAware olmaktan faydalanacağım.Bir ClickOnce uygulaması için LARGEADRESSAWARE nasıl ayarlanır?

Sorun çok kısa: LAA bayrağıyla uygulama başlamıyor.

Ampirik sonuçlar: Ben tüm ClickOnce yayıncılık çalışan bir sürüm script var

1), sonra yeniden işaretler yürütülebilir ve DLL, sonra tezahür, işaretler yeniden oluşturur etc

editbin /LARGEADDRESSAWARE <path>/obj/Publish/app.exe 
0123:) komut çalıştırma uygulamayı bana yükler ve güzel sonrası sürüme bu ekleme

3) çalışan bir uygulamayı sonları verir \ Betabox \ appbeta \ Uygulama;

Aktivasyon:

alıyorum hata iletisi(... ama Çalışması - - aptalca evet, biliyorum, biz Yayınla denir bir yapı yapılandırma var) .application istisna ile sonuçlandı. ardından arıza mesajları tespit edilmiştir: Bu montaj Uyg.exe için

+ Güçlü adı imzası geçerli değil.

Hem açıklamam hem de exe, geçerli bir kod imzalama sertifikasıyla imzalanır. Ve betik ayarlanmadığında betik iyi çalışır.

Komut dosyası olmadan da denedim, yalnızca editbin komutu ile VS-aynı hata sonrası oluşturma ve yayımlama komutunda.

Yani - ClickOnce ile ayarlanmış LARGEADRESSAWARE ile bir uygulama yayınlamak tamamen imkansız mı?

Teşekkürler!

cevap

5

Çözüldü! ClickOnce forumlarda Kira dan

Got yardım: http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/b008087c-45f8-4de6-b8f5-f34fddb29c8c/?prof=required

Çözüm: EXE SAA bayrağı ayarlandıktan sonra yeni güçlü adla yeniden imzalanacak vardır.

bunu nasıl : Post-yapı içinde , bayrak ayarlanır:

cd $(ProjectDir) 
editbin /LARGEADDRESSAWARE obj/$(ConfigurationName)/app.exe 

Ve bundan sonra da post-yapı içinde, exe yeniden imzalanmalıdır :

sn -Ra obj\$(ConfigurationName)\app.exe PublicPrivateKeyFile.snk 

Bu PublicPrivateKeyFile.snk bir kod imzalama anahtarı olduğunu varsayarak tabii ve Visual Studio projesi yolunda olduğunu.

Sorunum yeniden imza olduğunu tüm DLL dosyaları/yapı sonra giderler kullanıyordum: Olduğu gibi

for /R %BIN_DIR% %%f in (*.dll) do signtool sign /a /i "Thawte" /t http://timestamp.verisign.com/scripts/timstamp.dll "%%f" 
for /R %BIN_DIR% %%f in (*.exe) do signtool sign /a /i "Thawte" /t http://timestamp.verisign.com/scripts/timstamp.dll "%%f" 

Ama bu güçlü adını güncellemek etmez sadece exe imzalar.

Bu birinin işe yaramasını umarız!

+0

Teşekkür ederiz! Bu, bir "ClickOnce" dağıtımı yaparken, "editbin" değişimin neden uygulanmadığını anlamaya çalışmak için bana çok yardımcı oldu. ClickOnce'un ** obj ** klasöründeki dosyaları kullandığını ve ** bin ** çıkış klasörünü KULLANMADIĞINI fark etmedim. – Nick

İlgili konular