如何使用带Wix的x86编译在System 32文件夹上安装
我正在构建一个项目的x86编译 出于某些技术原因,我需要复制system 32文件夹中的一些.dll。为此,我写了以下几行:如何使用带Wix的x86编译在System 32文件夹上安装,wix,wix3.5,wix3.6,wix3.7,Wix,Wix3.5,Wix3.6,Wix3.7,我正在构建一个项目的x86编译 出于某些技术原因,我需要复制system 32文件夹中的一些.dll。为此,我写了以下几行: // In an external .wxs file <?define System32Dir= "C:\Windows\System32" /> <Component Id="cmp32bits" Directory="System32Dir" Guid="*"> <Condition>NOT VersionNT64&l
// In an external .wxs file
<?define System32Dir= "C:\Windows\System32" />
<Component Id="cmp32bits" Directory="System32Dir" Guid="*">
<Condition>NOT VersionNT64</Condition>
<File Id="file32bits" KeyPath="yes" Source="mypathtothefile" />
</Component>
<Component Id="cmp64bits" Directory="System32Dir" Guid="*">
<Condition>VersionNT64</Condition>
<File Id="file32bits" KeyPath="yes" Source="mypathtothefile" />
</Component>
其中.bat
文件如下所示:
copy 64bits.txt C:\Windows\System32
但实际上,我无法使
自定义操作
正常工作…我在安装程序中为此要求执行了以下操作
将文件发送到安装位置的某个位置,然后使用DTF延迟自定义操作将这些文件复制到“C:\Windows\System32” 您无法从32位软件包中正式安装64位组件: Windows通常会将您重定向到32位文件夹 我将分析为什么要求您从32位安装中将DLL安装到64位系统文件夹。如果它们是64位DLL,则可能需要单独安装64位DLL:
如果它们是32位DLL,那么需要将它们放在64位系统文件夹中的应用程序需要重新设计,以便与64位系统保持同步 请看我的编辑。我试着这么做,但我不能让它工作。。。似乎是一个解决方案,但对我来说仍然不起作用。对MSI本机支持的东西使用自定义操作是个坏主意。@BobArnson是的。我同意你的看法。但这就像是一些例外情况。@Sonhja您的代码似乎适合我。您能分享一下您尝试过的完整样品吗?我会看一看。悲伤的结论(经过一些调查后,我还是害怕的)。。。但我明白。
copy 64bits.txt C:\Windows\System32