WiX - 从Custom Action写入新文件

时间:2011-04-19 19:41:05

标签: c# wix

我有一个C#Custom Action,它可以加载XML文档并对其内容进行一些更改。

当我在Windows 7 32位工作站上运行时,不会创建新的XML文档。当我在Windows Server 2003 VM上测试安装程序时,CA按预期工作并将XML文档保存在安装目录中。

string configFile = Path.Combine(configFileSaveLocation, targetName);
StreamWriter writer = new StreamWriter(configFile);
doc.Save(writer);
writer.Close();

其中'doc'是XmlDocument。

如果我将上述4行放在try / catch块中,则不会出现异常。

关于我缺少什么的想法?

1 个答案:

答案 0 :(得分:2)

由于Impersonate =“No”就行了,这显然是一个权限问题。但仅此一点就是缺乏例外原因。 Windows Vista及更高版本会将某些类型的错误文件访问重定向到%LocalAppData%\VirtualStore\Program Files*。我敢打赌,如果你看到那里而不是真正的Program Files*,你会看到你的配置文件。

在研究这个时,我刚学会了一个简单的方法来查看真实文件夹并单击资源管理器中的Compatibility files按钮;该按钮仅在相关时出现。有关详细信息,请参阅Common file and registry virtualization issues in Windows Vista or in Windows 7上的方案2。