Wix工具集与InstallShield - VirtualStore Access

时间:2015-12-29 00:48:27

标签: wix virtualstore visual-studio-2015

我开发了VS2010的应用程序和IS限制版的安装部署。应用程序在XML文件中提供一些数据,该文件安装在同一文件夹中。如果应用程序在XML文件中进行了更改,则会将其保存在virtualStore中。

我现在使用VS2015和Wix Toolset。应用程序可以编译,我能够编写WXS文件。新建的MSI安装应用程序,似乎一切正常。但现在应用程序无法访问XML文件。访问被拒绝。 我试图将MSI与Orca进行比较,但没有看到明显的东西。我不确定,如果这是设置或应用程序本身的问题。

修改

如果我在新安装中复制“旧”EXE文件,则应用程序可以访问XML文件。

感谢您的帮助和提示

1 个答案:

答案 0 :(得分:2)

如果程序似乎来自Windows Vista之前,作为受限用户运行,并尝试写入某些仅限计算机的位置,则Windows可能会将其作为向后兼容垫片的一部分重定向到虚拟存储。如果程序似乎不是在Windows Vista之前,则不执行重定向。

我相信Windows通过阅读支持平台的清单 - application manifest中的supportedOS元素来检测程序是否出现在Windows Vista之前。我猜你的工具链从VS 2010到VS 2015的变化导致这个元素被添加到你的应用程序的清单中(Windows XP已超过其支持的生命周期,因此Visual Studio 2015可以隐含地假设你至少支持Vista)的

您可以覆盖清单,但实际上您应该修复程序,不要尝试写入每个计算机的位置。理想情况下,您应该使用诸如LocalAppData文件夹之类的位置,但为了向后兼容,至少从虚拟存储中读取旧文件可能会有好处。