【问题标题】:WIX Heat wrong 'registryvalue' 'codebase' valueWIX Heat 错误的 'registryvalue' 'codebase' 值
【发布时间】:2020-04-15 13:29:43
【问题描述】:

我知道关于这个主题有很多类似的问题,但没有一个能给我答案。

我正在为我在 VS2019 中开发的 dll 创建一个 Windows 安装程序。安装程序已创建并在我的机器上正常工作,但在其他机器上却不行。原因是所有名为“CodeBase”的注册表值都有错误的 dll 路径。不是我的VS项目的安装目录而是release目录。

我试过了

"C:\Program Files (x86)\WiX Toolset v3.11\bin\heat.exe" dir "$(TargetDir.TrimEnd('\\'))" -suid -sfrag -srd -gg -g1 -cg EA<my project name>Assemblies -var var.$(ProjectName).TargetDir -wixvar -dr INSTALLFOLDER -out "$(ProjectDir)WIX\$(TargetName).wxs"

INSTALLFOLDER 在“Product.wxs”中定义

<Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="ProgramFilesFolder">
            <Directory Id="INSTALLFOLDER" Name="my product name" />
        </Directory>
    </Directory>
</Fragment>

生成的 XIX 文件中的 CodeBase 注册表值行都如下所示:

<RegistryValue Root="HKCR" Key="CLSID\{41D3DB26-8261-303B-ACAF-F4F823FE21BE}\InprocServer32\3.1.1.0" Name="CodeBase" Value="file:///C:/Dev/C#/<my VS project path>/bin/Release/Microsoft.AspNetCore.Http.Features.dll" Type="string" Action="write" />

如您所见,创建的路径不是目标目录(即C:\Program Files (x86)\my product name),而是我的VS项目的release目录。 p>

我还尝试将 INSTALLFOLDER 替换为 TARGETDIR 并添加参数 -directoryid TARGETDIR(分别为 INSTALLDIR)在 heat.exe 的调用中,但没有任何改变。

所以我希望我能在这里找到能告诉我,我做错了什么的人。我会很感激任何帮助。如果您需要更多信息,请告诉我。我在 Win10 上使用带有 VS2019 的 heat 版本 3.11.1.2318。

我为我的产品匿名化表示歉意,但它不是我的财产,目前我不允许发布它。

约尔格

【问题讨论】:

  • 稍后可能会再看一遍,但可能检查Paraffinanother one 上的链接。我不确定它是否已经被维护了。那里可能有什么东西。

标签: visual-studio wix registry installation codebase


【解决方案1】:

不得不这么说很遗憾,但对我来说,唯一的解决方案是改用另一种技术并使用 Visual Studio 安装程序项目模板(恕我直言。更容易处理)来创建我的安装程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多