首先,我意识到这个问题已经被问过很多次了。我已经查看了无数的解决方案,但没有一个解决了我的错误。
所以我有一个已发布的 ClickOnce Excel 加载项,当它从本地目录安装时会正常安装(因此在同一文件夹中而不是从网站中寻找 .vsto)。但是我希望我的加载项检查来自我的服务器的更新,所以我将我的安装路径设置为 http://[subdomain].[domain].com/exceladdin/。
我将我的文件放在一个 git 目录中并将它们推送到我的远程存储库。然后我将更改拉到我的 Apache2 服务器(“setup.exe”、“.vsto”和“Application Files”文件夹都在 public/exceladdin 目录中)。然后我重新启动我的 Apache2 服务器。
当我从 Internet Explorer 访问 .vsto 时,它会开始安装,但随后会出现以下消息:
Name:
From: http://<subdomain>.<domain>.com/exceladdin/<filename>.vsto
************** Exception Text **************
System.Deployment.Application.InvalidDeploymentException: Application manifest has either a different computed hash than the one specified or no hash specified at all. --->
System.Deployment.Application.InvalidDeploymentException: File, <filename>.dll.manifest, has a different computed hash than specified in manifest.
at System.Deployment.Application.ComponentVerifier.VerifyFileHash(String filePath, Hash hash)
at System.Deployment.Application.ComponentVerifier.VerifyFileHash(String filePath, HashCollection hashCollection)
at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
--- End of inner exception stack trace ---
at Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.GetManifests(TimeSpan timeout)
at Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()
如果我下载 setup.exe 并运行它,也会发生完全相同的事情。
我正在使用的东西:
用于创建和发布加载项的 Visual Studio 2013
GitHub 用于我的远程存储库
Apache2 运行我的服务器
我为解决此问题所做/尝试过的事情:
清理了我的构建/解决方案并删除了 obj 和 bin 文件夹,然后重新发布了文件
根据此使用 Mage 和 MageUI 对清单进行签名
我还使用自定义测试证书签署了我的加载项
我一直在努力解决这个问题,所以任何故障排除技巧将不胜感激!
提前致谢