利用不在 GAC 中的 C# 微软程序集

utilizing C# microsoft assemblies that are not in the GAC

我的电脑只安装了VS2019,.net版本最高为4.8。我正在尝试在我正在处理的程序中使用 Microsoft.Build.Construction 程序集。当我去添加参考->程序集时,我拥有的唯一版本是 4.0.0.0。根据我的研究,VS 停止向 GAC 添加程序集,因此我不得不从 C:\Program Files (x86)\Microsoft Visual Studio19\Enterprise\MSBuild\Current\Bin 手动添加 DLL,以便利用版本 15.1.0.0至少支持 SolutionFile 调用。

所以我的问题是:我应该将这些版本推送到 GAC 以便能够使用它们,还是有比我做的更好的方法来访问非 GAC 程序集。

忘记 GAC,只需将 Bin 文件夹中的 DLL 复制到 /References 中的项目文件夹,然后从那里引用它。这样如果你使用版本控制,DLL的具体版本跟在源码后面。

编辑:正如下面 Lex 所提到的,这不是适用于 MSBuild 程序集的解决方案,您应该改用 Nuget 包。

对于MSBuild 程序集,您必须严格遵循Microsoft 的指导,以避免所有方面的努力。一般来说,推荐NuGet包。

Change MSBuild references

To make sure that MSBuild loads from a central location, you must not distribute its assemblies with your application.

The mechanism for changing your project to avoid loading MSBuild from a central location depends on how you reference MSBuild.

Use NuGet packages (preferred)

详细内容请查看长reference