其他分享
首页 > 其他分享> > 使用MSBuild发布VSTO加载项会出现错误:“ SignFile”任务意外失败. System.ArgumentNullException:值不能为null

使用MSBuild发布VSTO加载项会出现错误:“ SignFile”任务意外失败. System.ArgumentNullException:值不能为null

作者:互联网

我正在尝试在没有Visual Studio的TeamCity构建服务器上使用MSBuild发布Word的VSTO加载项.我已经完成了这两篇博客文章中的内容:

http://kentb.blogspot.com/2008/08/building-vsto-projects-without-visual.html
http://www.wiktorzychla.com/2011/02/msb3147-could-not-find-required-file-on.html

我的构建文件是我的Visual Studio解决方案,我的目标是“发布”.在我的开发计算机上的Visual Studio 2013中发布ClickOnce效果很好.

但是在构建服务器上,我得到了:

[SignFile] C:\Program Files
(x86)\MSBuild\Microsoft\VisualStudio\v12.0\OfficeTools\Microsoft.VisualStudio.Tools.Office.targets(612,
9): error MSB4018: The “SignFile” task failed unexpectedly.
System.ArgumentNullException: Value cannot be null. Parameter name:
path1 at System.IO.Path.Combine(String path1, String path2, String
path3) at
Microsoft.Build.Tasks.Deployment.ManifestUtilities.SecurityUtilities.GetPathToTool()
at
Microsoft.Build.Tasks.Deployment.ManifestUtilities.SecurityUtilities.SignPEFile(X509Certificate2
cert, Uri timestampUrl, String path, ResourceManager resources,
Boolean useSha256) at
Microsoft.Build.Tasks.Deployment.ManifestUtilities.SecurityUtilities.SignFile(X509Certificate2
cert, Uri timestampUrl, String path) at
Microsoft.Build.Tasks.Deployment.ManifestUtilities.SecurityUtilities.SignFile(String
certThumbprint, Uri timestampUrl, String path) at
Microsoft.Build.Tasks.SignFile.Execute() at
Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at
Microsoft.Build.BackEnd.TaskBuilder.d__20.MoveNext()

我不知道这是什么意思或如何解决.有任何想法吗?

解决方法:

回答我自己的问题,因为这可能会在将来对某人有所帮助.

我发现这是因为该版本的SignFile任务需要我尚未安装的signtool.exe.我在所有选项都打勾的情况下安装了Windows SDK,然后安装了它,并且发布任务现在可以运行了.我不确定它包含哪个选项,但是我认为它不是.NET,因为我已经安装了该选项.

标签:visual-studio-2013,teamcity,msbuild,c,vsto
来源: https://codeday.me/bug/20191028/1954451.html