当我使用MSBuild发布ClickOnce应用程序时出现以下错误。我有一个预发布任务,它在发布之前将正确的app.config文件复制到项目中,这是我认为唯一可能导致此错误的事情。我怎么能纠正这个?
以下失败消息是 检测到:文件, MyApplication.exe.config,有一个 不同的计算哈希比指定的 在清单中。
答案 0 :(得分:4)
您在生成哈希后复制文件。
您需要在BUILD期间和PUBLISH之前复制文件。 ClickOnce机制认为存在篡改行为。
答案 1 :(得分:3)
Brett的回答是正确的, GenerateManifests 目标在 CoreBuild 目标(在Microsoft.Common.targets)中间运行,因此更新构建的最佳位置文件位于 BeforeBuild 。
我猜你正在切换app.config的原因是用一个具有正确发布环境值的配置替换配置?如果是这种情况,请在publishing to multiple environments上阅读我的帖子...将有助于回答诸如“如何覆盖BeforeBuild目标?”等问题。
答案 2 :(得分:1)
签署clickonce清单并(重新)在项目属性中的签名选项卡下为您的应用程序创建测试证书...这解决了我的问题。祝你好运