使用 .NET 5.0 编写 Visual Studio 扩展 (VSIX)

8

我正在开发一个VS 2019扩展,目前使用的是.NET Framework (4.8)。我想将其升级到.NET 5.0,但VSIX项目不支持任何.NET Core版本,如果可能的话,我想避免使用.NET Standard。目前找不到有关下一个Visual Studio版本(2021?)以及是否支持.NET 5.0 VSIX项目的信息。我认为微软会处理这个问题,但另一方面,VS仍然是一个32位应用程序。:-) 如果我在这里提出的问题不太合适,请见谅。


我想升级它...但是VSIX项目不支持它或任何.NET Core版本。如果可能的话,我想避免使用.NET Standard。你知道吗,.NET Standard只是在某个时间点符合规范的所有.NET实现(包括.NET Core)的基线。所以,如果您打算使用.NET Core 3.0,那么这只是.NET Standard 2.1的一部分。未来,它只是.NET 5,一个用于所有内容的单个实现。其余的有点无关紧要。 - user585968
为什么不将大部分代码放在.NET 5项目中,并从您的.NET Framework 4.8 VSIX项目中引用它呢? - user585968
就像我说的那样,VSIX项目只是代码和安装程序包的框架。使用任何你喜欢的方式编写其余部分,只要它可以被引用即可。为什么你这么想把所有东西都放在一个项目中呢?最好将它们解耦。 - user585968
我们似乎在谈论同一件事。VSIX项目=4.8。库=标准_x.y_。 - user585968
@MickyD - 我尝试将库放在.NET 5和VSIX项目中作为.NET Framework 4.8。为什么我会得到“Project'..\GammaFour.DataModelGenerator.Client\GammaFour.DataModelGenerator.Client.csproj' targets 'net5.0'。它不能被一个目标为'.NETFramework,Version=v4.8'的项目引用。”?这看起来就像你所建议的一样。 - Quark Soup
显示剩余3条评论
1个回答

3
您的主要扩展必须是 x86 .NET Framework,因为它是由 VS 进程托管的。您可以将一些功能移动到 .NET Standard 2.0 或 .NET Core 5.0 控制台应用程序中。

谢谢。我认为我无法在标准2.0库中利用所有5.0功能,而且我不能将这些库运行在外部进程中。我想我只能等待微软内部更新VS到.NET 5.0。(希望是VS 2021) - Jim
不要抱太大希望。 - ErikEJ
2
我不敢相信,现在已经是2021年了,但VS仍然是32位应用程序! - Jim
@Jim 我知道这并没有帮助,但现在是2021年,VS已经是64位了! - Jamie Twells
2
终于!!!VS 2022 是64位的,但仍然运行在.NET Framework上。(我理解他们不想在一个版本中引入两个重大变化)我将不得不等到下一个版本(2024年?)才能使用.NET 5或6或者那时候的任何Core版本。仍然不抱太大希望。 - Jim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接