我创建了一个自定义设置包,用于在客户机上安装一些字体,并将其部署到C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\FontsInstaller
的先决条件文件夹下。在 Visual Studio 2010 中引用它作为先决条件一切都很好,我能够无问题地发布应用程序。
另一方面,客户端在哈希验证期间出现错误:
正在验证文件哈希
错误:安装程序检测到文件'C:\Users\RMORAN~1\AppData\Local\Temp\VSD4684.tmp\FontsInstaller\fontsinstaller.msi'在最初发布后已更改或可能损坏。
我尝试使用 Bootstrapper Manifest Generator 包含和排除哈希值,但客户端始终得到相同的结果。由于安全原因,一旦失败哈希验证,该文件会立即被删除。
现在,我发现了一份Microsoft Connect bug报告,其中写道:
"我安装了一个自定义启动程序包,作为我的应用程序的前提条件。当我在安装了 Visual Studio 2012 的系统上构建时,安装失败,并显示以下错误:
安装程序检测到文件'...'在最初发布后已更改或可能损坏。
我是在 Visual Studio 2010 中构建的,没有对包或项目进行任何更改。没有安装Visual Studio 2012时,这个过程按预期工作。
我尝试在另一台未安装VS2012的工作站上构建此安装程序,在客户端通过了哈希验证(我遇到了签名问题,但那是另一个故事)。这真的是构建机器有VS2012的问题,而不是客户端的问题,因为在我的原始工作站上构建的软件包也在没有安装VS2012的计算机上失败。
如果还有其他人遇到了这个问题,则除了不安装VS2012之外,您是否找到了解决方法?