net 7 支持构建 Wix 4 自定义操作吗?

问题描述 投票:0回答:1

我正在将一个解决方案转换为 net 7。它包含 WiX 安装程序(最近转换为 WiX 4)和一个自定义操作项目(当前在 net 4.7.2 中)。

在自定义操作项目构建结束时,它会运行 WiX 的命令行工具:

$(NuGetPackageRoot)wixtoolset.dtf.customaction .0.1 ools\WixToolset.Dtf.MakeSfxCA.exe" "$(TargetDir)InstallUtilsPackage.dll" "$(NuGetPackageRoot)wixtoolset.dtf.customaction .0.1 ools\x64\SfxCA .dll" "$(TargetPath)" "$(TargetDir)CustomAction.config" "$(NuGetPackageRoot)wixtoolset.dtf.windowsinstaller .0.1\lib et20\WixToolset.Dtf.WindowsInstaller.dll"

在网络4中它工作正常。现在我尝试将该项目转换为net 7。

我使用相同的命令行,只是将 WixToolset.Dtf.WindowsInstaller.dll 的路径更改为 netstandard2.0

$(NuGetPackageRoot)wixtoolset.dtf.customaction\4.0.1\tools\WixToolset.Dtf.MakeSfxCA.exe" "$(TargetDir)InstallUtilsPackage.dll"  "$(NuGetPackageRoot)wixtoolset.dtf.customaction\4.0.1\tools\x64\SfxCA.dll"  "$(TargetPath)"  "$(TargetDir)CustomAction.config"  "$(NuGetPackageRoot)wixtoolset.dtf.windowsinstaller\4.0.1\lib\netstandard2.0\WixToolset.Dtf.WindowsInstaller.dll"

在这里我意识到,即使在调用此命令之前,即使我禁用它,构建也会失败并出现以下错误:

EXEC:错误:无效参数:WixToolset.Dtf.WindowsInstaller.dll 必须包含在支持文件列表中。如果使用 MSBuild 目标,请确保程序集引用设置了“私有”(复制本地)标志。

显然,net 7 情况下的 WixToolset.Dtf.MakeSfxCA.exe 会被自动调用并失败。

这个答案:Wix4 C# CustomAction 项目编译错误 - WixToolset.Dtf.WindowsInstaller 参考 表明 WiX 4 自定义操作与任何网络核心版本都不兼容。但我想确定一下,这对于新的 WiX 来说会很奇怪。

wix wix4
1个回答
0
投票

对于新的 WiX 来说这会很奇怪。

为什么? WiX 是一个开源项目。如果没有人有兴趣贡献这项工作,那么这项工作就不会完成......

...托管 .NET Core 是一项特别艰苦的工作。

我们在尝试将其托管在 Burn 中以用于自定义 BoostrapperApplications 中吸取了很多经验教训,并且所有这些都在 WiX v5 中进行了重写,以在不托管 .NET Core 的情况下提供功能,因为存在基本问题。值得庆幸的是,我们没有尝试对自定义操作执行相同的操作,因为它们也会同样损坏。

tl;博士

不,不支持。

© www.soinside.com 2019 - 2024. All rights reserved.