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

在.NET Core应用中运行PowerShell时为何出现Microsoft.Management.Infrastructure缺失异常?

解决方案:ClickOnce发布后缺失Microsoft.Management.Infrastructure.dll

问题原因

Microsoft.PowerShell.SDK间接依赖Microsoft.Management.Infrastructure(WMI管理核心库),但ClickOnce自包含发布时,可能因该依赖为间接引用或私有资产设置,导致组件未被自动打包进发布包。

解决步骤

1. 显式添加Microsoft.Management.Infrastructure NuGet包

直接在项目中添加该依赖,确保发布工具能检测并包含它:
在项目的.csproj文件中补充引用:

<ItemGroup>
    <PackageReference Include="Microsoft.Management.Infrastructure" Version="1.0.0" />
    <PackageReference Include="Microsoft.PowerShell.SDK" Version="7.3.4" />
</ItemGroup>

或通过NuGet包管理器执行安装命令:

Install-Package Microsoft.Management.Infrastructure -Version 1.0.0

2. 确认依赖项的“复制本地”属性

在Visual Studio中,右键点击项目引用里的Microsoft.Management.Infrastructure,选择「属性」,将复制本地设置为True,确保该DLL会被复制到输出目录。

3. 验证发布输出目录

完成发布后,打开ClickOnce发布的输出文件夹,检查是否存在Microsoft.Management.Infrastructure.dll。若缺失,手动从本地项目的bin\Release\netX\win-x64目录复制该DLL到发布目录,再重新部署测试。

4. 检查自包含发布配置

确认ClickOnce发布配置满足:

  • 选择自包含部署模式
  • 目标运行时设置为Windows Server 2019对应的架构(通常为win-x64)
  • 勾选“包含所有依赖项”相关选项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:03:05