2013-05-11 56 views
0

我有大約100個應用程序要重新發布,我是否使用microsoft.build來完成此任務。那麼他們約有40人不會因爲他們有Error 1 Unable to find manifest signing certificate in the certificate store.Microsoft.Build.BuildEngine,由於項目簽署證書而失敗

重新發布,我知道我可以一個接一個地從項目中刪除該屬性,但這需要很長的時間。

這是我在下面使用的代碼,我想知道有沒有辦法通過代碼關閉該屬性?

Console.WriteLine("building: " + f.FullName); 
      Engine engine = new Engine(); 
      engine.GlobalProperties.SetProperty("Configuration", "Release"); 

      bool success = engine.BuildProjectFile(f.FullName); 

回答

0

你是從上面的代碼構建你的MSBuild項目文件嗎?

如果您知道需要在每個項目中刪除哪些屬性,則可以在代碼中或通過MSBuild命令行設置該值。

如果您刪除所有這些屬性或將它們設置爲null,那麼您將不會收到此錯誤。

<manifestcertificatethumbprint> </manifestcertificatethumbprint> 
<manifestkeyfile></manifestkeyfile> 
<generatemanifests></generatemanifests> 
<signmanifests></signmanifests> 

您也可以從MSBuild命令行傳入這些參數值。

但是,如果您需要簽署您的程序集,則需要提供新的Key.snk文件以簽署程序集。

MSBUILD solutiontoBuild.sln /p:SignAssembly=false;DelaySign=false

相關問題