Visual Studio 2022发布.NET8 Linux-arm32应用时依赖项目文件缺失
问题原因及解决方案
核心问题
Project_B设置的Any平台仅代表它兼容多CPU架构,但发布Project_A到linux-arm时,Visual Studio不会自动为Project_B构建对应架构的输出——默认只会生成当前开发环境(Windows-x64)的版本,因此找不到linux-arm目录下的.dll文件。
解决步骤
为Project_B添加linux-arm架构支持
- 右键Project_B → 属性 → 生成 → 点击"配置管理器"
- 在配置管理器里,点击Project_B的"平台"下拉框 → <新建> → 选择"ARM",勾选"创建新解决方案平台"后确认
- 确保Release配置下,Project_B的平台包含linux-arm,且"生成"选项已勾选
预构建Project_B的linux-arm版本
- 右键Project_B → 发布,配置选择.NET8、独立部署、linux-arm,完成发布后确认
obj\Release\net8.0\linux-arm目录及其中的.dll文件已生成
- 右键Project_B → 发布,配置选择.NET8、独立部署、linux-arm,完成发布后确认
确保Project_A发布时自动构建依赖
- 右键Project_A → 属性 → 发布 → 点击"高级"按钮,确认"包含所有项目依赖项"已勾选
- 在发布配置的"生成"选项里,启用"在发布前生成",保证发布前会自动构建所有依赖项目的对应架构版本
命令行发布(更可靠的备选方案)
打开开发者命令提示符,切换到解决方案目录,执行以下命令强制构建整个解决方案的linux-arm版本:dotnet publish Project_A.csproj -c Release -r linux-arm --self-contained true /p:PublishSingleFile=true该命令会自动触发Project_B的linux-arm架构构建,避免Visual Studio UI配置可能出现的遗漏
内容的提问来源于stack exchange,提问作者AKuhlmann
相关产品推荐
相关产品推荐

