我正在使用VS Pro Update 3
我有3个现有的.NET 4.5.1类库,用VB.NET编写,但我不是全部都在CLR上 .
我的ASP.NET核心项目是C#,目标是.NET 4.5.1 .
这是我的project.json的Framework部分:
"frameworks": {
"net451": {
"dependencies": {
"WebApp.Api.Services": {
"target": "project"
}
}
}
},
如果我使用 Add Existing Project 将我的所有VB.NET类库添加到我的解决方案并尝试将它们添加为项目引用,我会收到以下错误:
项目XXX类型不受当前项目支持,无法添加为参考
我还尝试添加一个C#类库(WebApp.Api.Services),添加VB.NET引用,然后添加C#类库作为ASP核心项目的引用
这样做会显示解决方案资源管理器中的引用,好像我可以使用C#类库中的类型,但我可以在代码中使用't use the VB.NET library'类型 .
我还创建了一个NuGet包,但没有运气
我已经读过你可以以某种方式创建一个'wrapper'项目,或者Visual Studio可以自动执行此操作 .
有没有人尝试过将VB.Net项目添加到ASP Core解决方案?
2 Answers
为.NET Core构建的项目不能使用为.NET Framework构建的类库 . 它们彼此不直接兼容 . 事实上,当你说:
如果它的目标是.NET 4.5.1,那么它实际上并不是.NET Core项目 .
您应该将类库移植到.NET Standard;这样他们就可以被各种各样的compatible frameworks使用 . 也可以有一个类库target multiple frameworks .
我设法解决了我的问题 .
指南here是正确的,我有另一个我没有意识到的不同问题 .
我发现
System.BadImageFormatException
错误导致我出现以下问题Start an asp.net core project as x86 under visual studio 2015我卸载了x94版本的.NET Core并安装了x86版本 .
我仍然无法将对VB.NET库的引用添加到ASP Core项目中,因此我的C#服务“Bridge”库至关重要 .
在我的'Bridge'库中,我有可以从ASP控制器返回的模型:
然后扩展
虽然这些模型的基本成员无法在控制器中访问,但由于ASP proj没有引用VB项目,它们由控制器返回,其中包含所有基本成员的JSON结果 .
这实际上很棒,因为它适合薄控制器的设计 .