【问题标题】:WIX property NETFRAMEWORK40FULLINSTALLROOTDIR is blankWIX 属性 NETFRAMEWORK40FULLINSTALLROOTDIR 为空白
【发布时间】:2016-08-09 10:48:57
【问题描述】:

我正在尝试使用 WIX 安装程序使用 RegAsm 命令注册我的 COM 插件。但我做不到。它对WixNetFxExtensionNETFRAMEWORK40FULLINSTALLROOTDIR 甚至NETFRAMEWORK40CLIENTINSTALLROOTDIR 显示空白。

这是自定义操作的代码:

<CustomAction Id="RegisterUsingRegAsm" Directory="PROOFIX_ADDIN" Execute="deferred" Impersonate="no" Return="check"
              ExeCommand='"[NETFRAMEWORK40FULLINSTALLROOTDIR]regasm.exe" "[PROOFIX_ADDIN]Proofix.View.dll" /codebase' />

当我尝试对路径 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe 进行硬编码时。它工作正常...

这是序列信息:

<InstallExecuteSequence>
  <Custom Action="RegisterUsingRegAsm" Before="InstallFinalize" />
</InstallExecuteSequence>

这是为安装程序生成的日志:

操作:RegisterUsingRegAsm,位置: C:\Users\naveed.butt\AppData\Local\Optimentor\Proofix\,命令: “regasm.exe” “C:\Users\naveed.butt\AppData\Local\Optimentor\Proofix\Proofix.View.dll” /代码库

【问题讨论】:

    标签: installation wix setup-project


    【解决方案1】:

    首先你缺少一个PropertyRef

    像这样:

    <PropertyRef Id="NETFRAMEWORK40CLIENTINSTALLROOTDIR"/>
    

    第二个问题,如果您在 64 位窗口上,您应该使用 64 位变量:

    NETFRAMEWORK40CLIENTINSTALLROOTDIR64
    

    但是,您可以在有条件的情况下处理 32/64 位 Windows 操作系统。你可以从这个答案中获得灵感:https://stackoverflow.com/a/12514596/600559

    【讨论】:

    • 我也尝试添加该属性,但没有成功。我唯一没有尝试的是64 bit 运行时,因为虽然我的操作系统是 64 位的,但它也安装了 32 位运行时。所以问题是,我真的需要更改/切换到64 bit run-time 吗?
    • 安装(32 位应用程序)时 - 在 64 位操作系统上,您需要使用 NETFRAMEWORK40FULLINSTALLROOTDIR64 和 NETFRAMEWORK40CLIENTINSTALLROOTDIR64
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    相关资源
    最近更新 更多