使用 MSBuild 从 Visual Studio 2013 命令行发布 Clickonce 找不到 SignTool.exe

Posted

技术标签:

【中文标题】使用 MSBuild 从 Visual Studio 2013 命令行发布 Clickonce 找不到 SignTool.exe【英文标题】:Clickonce publishing from Visual Studio 2013 command-line with MSBuild cannot find SignTool.exe 【发布时间】:2014-07-16 20:13:31 【问题描述】:

我有一个已经使用了很长时间的构建脚本,并且在 2012 年之前的所有以前的 VS 版本中都可以正常工作。迁移到 2013 年之后,构建脚本无法在构建结束时签署 ClickOnce 清单进程,并抱怨找不到SignTool.exe。

我在 64 位机器上运行 Windows 8.1,安装了完整的 Visual Studio 2013。我尝试重新安装适用于 8.1 的 Windows SDK,但是 仍然没有成功。 当我运行 在 Visual Studio 中发布。 我搜索了signtool.exe,唯一命中的是C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\bin

我实际上不太擅长 MSBuild,所以我不知道我可以尝试什么或如何向 MSBuild 展示它应该在那里找到该工具。

如果有人有这样的经历,请给我一些提示。

【问题讨论】:

【参考方案1】:

如果错误是“can't locate xxx”之类的错误,可能是路径搞砸了。在 VS.NET 2013 附带的 MSBuild 的 new version 中,看起来某些路径已更改。也许您现在必须更新构建文件中的相对路径?

需要您的完整构建文件来提供更多洞察力。

【讨论】:

感谢您的回答。我实际上没有“构建文件”。我正在使用带有一个命令的简单 bat 文件:使用我的项目调用 msbuild.exe,使用 /t:publish 和一些参数,如配置、平台、updateurl 等。我没有在参数中重新定义任何路径左右,而且也不在我的项目文件中。实际上,我已经在我的项目文件中搜索了某种“路径”变量定义,但找不到。我今天到达那里时会再次环顾四周。【参考方案2】:

问题在于我使用的是 X64 版本的 Visual Studio Commnad Line,而不是 X86。它可能必须与我的项目目标平台匹配,因为它是 x86。从 x86 命令行构建和签名工作正常,没有任何错误。

希望这对其他人也有帮助。

【讨论】:

以上是关于使用 MSBuild 从 Visual Studio 2013 命令行发布 Clickonce 找不到 SignTool.exe的主要内容,如果未能解决你的问题,请参考以下文章

MSBuild:从 Visual Studio 中构建解决方案后运行目标

从Visual Studio构建定义UI添加MSBuild的引用搜索文件夹

是否可以从 Mono 的命令行构建 MSBuild 文件(visual studio sln)?

网站编译在 MSBuild 中失败,但在 Visual Studio 中有效

MSBuild 支持 Visual Studio 2017 RTM 中的 T4 模板

在Visual Studio 2012中使用MSBuild PublishProfile时,MSDeploy跳过规则