kullanarak bir ClickOnce bildirimi imzalayamıyor Bir Windows Server bilgisayarında bir ClickOnce Windows Forms projesi (.NET 3.5/Visual Studio 2010) oluşturmaya çalışıyorum. (HudsonCI ile oluşturma işlemini otomatikleştirmek için bir çaba.) MSBuild, bir geçici anahtar (MSB3326 ve MSB3321 hataları)
ClickOnce manifestosunu imzalanması için ben, temp.pfx
Visual Studio geçici anahtar yarattı. Projemi iş istasyonumda Visual Studio'dan başarıyla oluşturabilir ve dağıtabilirim. Ben aşağıdaki hata iletilerini almak sunucuda MSBuild çalıştırırken Ama:
C
: \ Windows Microsoft.NET \ Framework64 \ v4.0.30319 \ \ Microsoft.Common.targets (1970,9): Hata MSB3326: Can not Aşağıdaki anahtar dosyasını içe aktarın:. Anahtar dosya şifre korumalı olabilir. Bunu düzeltmek için sertifikayı tekrar içe aktarmayı deneyin veya sertifikayı geçerli kullanıcının kişisel sertifika deposuna el ile içe aktarın. [C: .hudson \ jobs [...] .csproj]C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets (1970,9): hata MSB3321: anahtar alma "temp.pfx" dosyası iptal edildi. [C: .hudson \ işler [...] csproj.]
Şans olmadan aşağıdaki soruların ve cevapların hepsi çalıştı:
yığın taşması soruya Cannot import the keyfile 'blah.pfx' - error 'The keyfile may be password protected'
=> Benim durumumda, hata mesajı bir sertifika deposunun adını belirtmiyor, ancak bunun yerine "geçerli kullanıcının kişisel sertifika deposu" yazıyor. Konteyner adıyla (
sn -i temp.pfx personal
) olarak "Kişisel" ile kabul edilen cevap çalışırken=> bile, bu anahtar ayrıştırmak başarısız: ALiS_TemporaryKey.pfx içinde PKCS # 12 damla ayrıştırma başarısız
- - Bir iç hata o ccurred.
yığın taşması soru Using MSBuild to sign ClickOnce or assembly results in error MSB3321
=> kabul ettim cevabını çalıştı, ancak "Ya kullanıcı profili erişilemez veya özel anahtar ithal ediyoruz, çünkü anahtar dosyası alınamaz Sisteminizde yüklü olmayan bir şifreleme hizmeti sağlayıcısı gerektirebilir "
=> Windows Gezgini'nde (RobinDotNet'in öneri) çift tıklatarak dosyayı içe aktarmaya çalışırsam, aynı şey olur.
yığın taşması soru Signing assemblies with PFX files in MSBuild, Team Build, and TFS
=> söz konusu sorunun OP bana yardımcı olacağını var çok, ama ne yazık bile cevaplar o, yukarıdaki iki cevapları ile başarısız oldu:
MSBuild'i yapı makinesinde çalıştıran kullanıcı olarak oturum açın, MSBuild'i el ile çağırıp istendiğinde parolayı yazın.
=> Oturum açtım ve
msbuild myproject.sln
numaralı telefonu çalıştırdım, ancak parola için bana sormadı.Sonunda benim için ne düzelttiyse, TFS Build hizmetinin yerel makinede yönetici çalıştırdığı hesabı oluşturuyordu.
=> (daha doğrusu: Tomcat) Hudson çalışır hesabı yerel yönetici olan zaten. MSBuild'i "Run As Administrator" komut satırından çalıştırmayı denedim ve yine aynı hata iletilerini almaya çalıştım.
Güncelleme
: Ben aynı sunucuda Visual Studio çözüm açın ve onu inşa etmeye çalıştı. Aynı hatayı alıyorum. PFX dosyasını proje özellikleri 'İmzalama sekmesinde yeniden içe aktarmaya çalıştığımda, bana "geçersiz şifre" yazıyor. Aynı dosyayı Visual Studio'daki aynı dosyaya iş istasyonumda aktarmaya ve aynı parolayı sağlamaya çalışırsam kabul edilir.Güncelleme 2: Ben Visual Studio 2008 başarıyla bizim sunucunun sertifika deposunda alınabilir ile oluşturulan eski bir geçici anahtarı alırsak; Visual Studio 2010 ile yeni oluşturduğum geçici anahtarlar alınamıyor.
Güncelleme 3: sunucuda Visual Studio'da yeni "geçici anahtar" oluşturmak ve sunucu üzerinde hem de ClickOnce manifestosunu imzalanması için benim iş istasyonu üzerinde her ikisini de kullanmak başardı. Sadece bunun için makul bir açıklama yapamıyorum - her iki bilgisayarda da 64-bit ve Visual Studio 2010'u her ikisinde de kullanıyorum. Her ikisi de v3.5 ve v4 (4.0.30319). NET framework yüklü. İş istasyonum bir Windows 7 Professional ve sunucu bir Windows Server 2008 R2 Standard.
Bu, bahsettiğim ikinci yaklaşımla aynı sonucu verir :-( – chiccodoro
Dürüst olmak gerekirse, "Hudson" ın ne olduğunu bilmiyorum. Makinede .NET'in doğru sürümü var mı? Eğer görsel stüdyo projeyi açmak ve proje özelliklerine gidip çalışır, yeni bir sertifika oluşturmak çalışırsanız? o makinede sertifika deposuna yazma ayrıcalığına sahiptir? Bu bir pfx dosyası oluşturmak ve projeye ekleyin gerekir. ve sertifika deposunda görebilirsiniz (certmgr.msc/başlangıç) – RobinDotNet
bir yan not Hudson sadece bir ayrıntıyı yapmak olarak Öneriniz gelince – chiccodoro