Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用带Wix的x86编译在System 32文件夹上安装_Wix_Wix3.5_Wix3.6_Wix3.7 - Fatal编程技术网

如何使用带Wix的x86编译在System 32文件夹上安装

如何使用带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

我正在构建一个项目的x86编译

出于某些技术原因,我需要复制system 32文件夹中的一些.dll。为此,我写了以下几行:

// 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