使用mcr.microsoft.com/dotnet/sdk:6.0构建.wixproj遇msi.dll加载错误求助
解决WIX构建时“无法加载msi.dll”的问题
错误原因
msi.dll是Windows系统专属的原生动态链接库,用于处理Windows Installer相关逻辑。你当前使用的mcr.microsoft.com/dotnet/sdk:6.0默认是基于Linux的容器镜像,Linux环境中不存在该DLL,因此构建.wixproj时会触发这个错误。
解决方案
改用Windows版.NET SDK镜像
替换容器镜像为Windows基础的.NET SDK 6.0版本,比如mcr.microsoft.com/dotnet/sdk:6.0-windowsservercore-ltsc2019。这类镜像基于Windows Server Core系统,自带msi.dll及Windows Installer相关依赖,能正常运行WIX构建工具。拆分跨环境构建流程
如果需要保留Linux环境构建.csproj,可以拆分步骤:- 用Linux镜像构建
.csproj,生成项目输出文件; - 将输出文件复制到Windows环境(本地Windows机器或Windows容器);
- 在Windows环境中使用WIX工具链完成
.wixproj的构建。
- 用Linux镜像构建
确保WIX工具链完整
若使用Windows环境构建,需确认已安装完整的WIX工具集(推荐对应项目的兼容版本),避免因工具链缺失导致的依赖加载问题。
内容的提问来源于stack exchange,提问作者Riccardo79
相关产品推荐
相关产品推荐

