WIX 属性 NETFRAMEWORK40FULLINSTALLROOTDIR 为空
WIX property NETFRAMEWORK40FULLINSTALLROOTDIR is blank
我正在尝试使用 WIX 安装程序的 RegAsm 命令注册我的 COM 加载项。但是我做不到。它与 WixNetFxExtension 的 NETFRAMEWORK40FULLINSTALLROOTDIR
甚至 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>
这是为安装程序生成的日志:
Action: RegisterUsingRegAsm, location:
C:\Users\naveed.butt\AppData\Local\Optimentor\Proofix\, command:
"regasm.exe"
"C:\Users\naveed.butt\AppData\Local\Optimentor\Proofix\Proofix.View.dll"
/codebase
首先你少了一个PropertyRef
像这样:
<PropertyRef Id="NETFRAMEWORK40CLIENTINSTALLROOTDIR"/>
第二个问题,如果你使用的是 64 位 windows,你应该使用 64 位变量:
NETFRAMEWORK40CLIENTINSTALLROOTDIR64
但是您可以处理 32/64 位 Windows OS 条件。你可以从这个答案中得到启发:
我正在尝试使用 WIX 安装程序的 RegAsm 命令注册我的 COM 加载项。但是我做不到。它与 WixNetFxExtension 的 NETFRAMEWORK40FULLINSTALLROOTDIR
甚至 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>
这是为安装程序生成的日志:
Action: RegisterUsingRegAsm, location: C:\Users\naveed.butt\AppData\Local\Optimentor\Proofix\, command: "regasm.exe" "C:\Users\naveed.butt\AppData\Local\Optimentor\Proofix\Proofix.View.dll" /codebase
首先你少了一个PropertyRef
像这样:
<PropertyRef Id="NETFRAMEWORK40CLIENTINSTALLROOTDIR"/>
第二个问题,如果你使用的是 64 位 windows,你应该使用 64 位变量:
NETFRAMEWORK40CLIENTINSTALLROOTDIR64
但是您可以处理 32/64 位 Windows OS 条件。你可以从这个答案中得到启发: