.Net Core 3.1迁移找不到Microsoft.VisualBasic.Interaction.Environ方法如何解决
解决方案
方案1:安装官方Microsoft.VisualBasic兼容包(优先推荐)
.NET Core 3.1官方提供了完整兼容.NET Framework VisualBasic API的NuGet包,直接在你的项目中安装Microsoft.VisualBasic NuGet包(选择适配3.1的版本即可),该包内置了完整的Microsoft.VisualBasic.Interaction.Environ方法实现,安装后即可直接解决方法缺失问题,无需修改原有引用的旧NuGet包代码。
方案2:自定义Polyfill垫片实现
如果不想引入额外的NuGet依赖,且你仅用到Environ这一个缺失的API,可以在你的项目中自行实现同名垫片类,代码如下:
namespace Microsoft.VisualBasic { public static class Interaction { /// <summary> /// 兼容.NET Framework的Environ方法,实现读取环境变量的逻辑 /// </summary> public static string Environ(string name) { return Environment.GetEnvironmentVariable(name); } // 若后续发现其他缺失的Interaction类下的方法,可在此处补充对应实现 } }
程序运行时,旧NuGet包调用Environ方法时会优先匹配你项目中定义的该类方法,即可绕过原生Microsoft.VisualBasic.Core.dll缺失该方法的问题。
注意事项
- 以上两种方案均仅适用于Windows Server运行环境,不影响原有业务逻辑
- 如果缺失的VisualBasic相关API数量较多,优先选择方案1,无需自行维护兼容代码
内容的提问来源于stack exchange,提问作者user2966445
相关产品推荐
相关产品推荐

