Microsoft.Build.BuildEngine,由于项目具有签名证书而失败

时间:2013-05-11 21:27:33

标签: c# msbuild

我有大约100个应用程序要重新发布,我使用microsoft.build来完成此任务。其中大约40个不会重新发布,因为他们有Error 1 Unable to find manifest signing certificate in the certificate store.

我知道我可以一个接一个地从项目中删除该属性,但这需要很长时间。

这是我在下面使用的代码,我想知道有没有办法通过代码关闭该属性?

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

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

1 个答案:

答案 0 :(得分:0)

您是否正在从上面的代码构建MSBuild项目文件?

如果您知道需要在每个项目中删除哪个属性,则可以在代码中或通过MSBuild命令行设置该值。

如果删除所有这些属性或将它们设置为null,则不会出现此错误。

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

您也可以从MSBuild命令行传递这些参数值。

但是,如果您需要对程序集进行签名,则需要提供一个新的Key.snk文件以便对程序集进行签名。

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