Nuget软件包与C#和VB.NET兼容



我们有一个旧的vb.net应用程序。前端正在MVC 5中重新设计,我被分配将业务逻辑抽象为API。

我创建了一个带有一些代码的库来拨打API(因此,开发人员构建MVC 5应用程序可以轻松安装/更新软件包并使用它(。

,但我想帮助负责重新设计VB.NET项目的开发人员使用相同的Nuget软件包消费API。

是否可以创建一个与两者兼容的Nuget软件包,还是我真的需要制作两个软件包?

我读了一些有关.NET标准的东西,但是我找不到有关vb.net的任何内容,看起来它们仅适用于C#(我不确定(。


如果可能的话,VB.NET项目是否应该使用与软件包相同的.NET框架版本来工作?

编译的.NET DLL是语言不可知论:您可以使用任何.NET语言中的任何.NET语言编写的DLL。

请注意,与您设置的代码 target .net版本相比,您只能参考为.NET或较低版本编辑的.NET的dll(.net汇编(。。理想情况下,dll(在nuget和vb.net中(都针对相同的.NET版本,否则请阅读MSDN:.NET Framework中的版本兼容性。

该语言对.net nuget软件包无关紧要,因为它们都将其编译到其针对的框架中。这意味着从C#代码编译的C#组件可以分解为C#或VB .NET,无论其创建的原始语言是什么。

更多细节:

nuget软件包受其针对框架版本的限制,因此,如果您想最大程度地利用第三方库并将目标定位为最新的.NET标准(截至写作时2.0(。

.NET标准是兼容标准,这意味着,如果语言运行时版本支持该标准的该版本,则可以保证具有某些可用的API。

https://learn.microsoft.com/en-us/dotnet/standard/net-antard

基于该文档中的表格,如果您的旧应用程序针对.NET Framework 4.5,则只能构建针对.NET标准1.1的库。Nuget软件包的任何更高版本都将阻止您在旧应用程序中使用它。

最新更新