【问题标题】:Why are x64 merge module files not included in msi file为什么 x64 合并模块文件不包含在 msi 文件中
【发布时间】:2012-11-29 14:09:48
【问题描述】:

我的第一个 WIX 安装程序(我有 InstallShield 经验)。我已经包含了这个合并模块...

Merge Id="CRT" Language="0" SourceFile="$(env.LIBRARY_ROOT)\microsoft-merge-modules\vs2010-sp1\Microsoft_VC100_CRT_x64.msm" DiskId='1' 

媒体如下……

Media Id='1' Cabinet='product.cab' CompressionLevel='high' EmbedCab='yes' 

我在 ORCA 中打开 MSI 文件并看到组件表中列出的两个 mscv... 文件,但安装程序解决方案的 Visual Studio 2010 版本(除了创建 msi 文件)还创建一个 WIN\SYSTEM64 文件夹其中包含两个文件(msvcr100.dllmsvcp100.dll)。

当我在我的测试系统上运行安装程序时,(如果我不打开 Win 文件夹),我得到“从文件中读取错误:c:\lou\win\system32\msvcp100.dll”。

然后我添加了我自己创建的另一个产品合并模块,这些文件(正在安装到 ProgramFilesx64)不在 msi 中,而是在需要的单独文件夹“Program Files 64\productfolder”中复制到目标系统。

为什么这些文件不包含在 MSI 文件中?

【问题讨论】:

  • 试着把你的问题格式化一下
  • 我不知道你在说什么。一些细节怎么样,因为我是新手。
  • 哪里有链接告诉我这个“投票”等是什么意思?
  • 您是将 MSI 构建为 x86 还是 x64?
  • 在 VS 2010 中,配置为 Active(Release),平台为 Active(x64)。在 wxs 文件中,Package 是 Platform="x64"。这对于主安装程序和合并模块都是一样的。

标签: wix wix3.6


【解决方案1】:

来自 WIX 文档,对 Package 元素上的 Compression 属性的描述:

Compressed YesNoDefaultType 包负载应该嵌入容器中还是作为外部负载保留。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    • 2020-05-25
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    相关资源
    最近更新 更多