You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 7控制台项目集成PowerShell SDK发布后无法运行求助

问题解决:发布C# PowerShell项目后缺失Microsoft.Management.Infrastructure.dll

问题原因

Microsoft.Management.Infrastructure.dll是Microsoft.PowerShell.SDK的间接依赖,在自包含发布时,.NET的自动裁剪机制会移除代码里没有直接引用的程序集,导致这个DLL被误判为“未使用”而遗漏。调试阶段依赖是从本地NuGet缓存直接加载的,所以不会出现这个问题。

解决方案

方案1:显式添加依赖包引用(推荐)

在项目文件里直接添加Microsoft.Management.Infrastructure的引用,让发布工具明确保留这个依赖:

<ItemGroup>
  <!-- 新增显式引用 -->
  <PackageReference Include="Microsoft.Management.Infrastructure" Version="2.0.0" />
  <!-- 保留原有的PowerShell SDK引用 -->
  <PackageReference Include="Microsoft.PowerShell.SDK" Version="7.3.4" />
</ItemGroup>

注:7.3.4版本的Microsoft.PowerShell.SDK对应的Microsoft.Management.Infrastructure版本是2.0.0,版本号保持匹配即可。

方案2:禁用发布裁剪(临时应急)

如果不想添加额外引用,可以通过禁用裁剪来保留所有依赖,但会导致发布包体积大幅增加:

方式一:修改项目文件

<PropertyGroup>
  <PublishTrimmed>false</PublishTrimmed>
</PropertyGroup>

方式二:调整发布命令

去掉--self-contained参数(但要求目标机器已安装.NET 7运行时):

dotnet publish ConsoleApp1.csproj --configuration Release --runtime win-x64 --output pub

验证修改

修改完成后重新执行发布命令,检查pub目录下是否存在Microsoft.Management.Infrastructure.dll,确认后运行程序即可正常执行。

内容的提问来源于stack exchange,提问作者Ritmo2k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 22:17:14