在64位的Windows Server2008中,我需要一个.msi安装程序文件来将一些文件写入\windows\system32\inetsrv文件夹。(这些文件是C# XmlReaderSettings.Schema.Add()期望位于该文件夹中的一些XML Schema验证文件)。
当安装程序运行时,文件最终位于\windows\SysWOW64\inetsrv文件夹中,而不是它们需要的位置。
我试图让安装程序写入\windows\Sysnative文件夹,然后安装程序创建了一个具有该名称的文件夹,这是我没想到的。有关抑制SysWOW64重定向的讨论,请参阅this page。
我应该如何让.msi将我的文件写入64位Windows2008中的\ Windows \system32\inetsrv文件夹?
发布于 2009-08-28 17:01:28
以下是您可以使用的system folder properties。我知道这是违反直觉的,但你有没有尝试过System64Folder(http://msdn.microsoft.com/en-us/library/aa372054(VS.85%29.aspx)?阅读备注。
如果这不起作用,可以尝试将System32附加到WindowsFolder的末尾。
Edit-1:尝试设置Win64 attribute on your Component元素,看看重定向行为是否发生了变化。
发布于 2011-10-04 17:20:34
我尝试在wxs文件中使用Sysnative,但我得到了相同的结果:在Windows下创建一个Sysnative文件夹,而不是使用System32。因此,我在vbscript CA中使用了Sysnative :找到Windows文件夹(&H24&)并附加\Sysnative。这是可行的,但在卸载过程中需要第二个CA来删除文件。
发布于 2009-09-17 19:24:42
我通过将文件写入\windows而不是\windows\system32解决了我的问题。事实证明,C# XmlReaderSettings.Schema.Add()将使用\windows目录下的完全限定路径工作。如果提供的路径不是完全限定的,它只会默认到system32文件夹。
这并不是对这个问题的真正回答,但它是我迫切需要的一个变通办法。
https://stackoverflow.com/questions/1348217
复制相似问题