将类库引用添加到 ASP.NET 核心项目



我正在使用VS Pro Update 3

我一直在遵循这里的指南:https://www.hanselman.com/blog/HowToReferenceAnExistingNETFrameworkProjectInAnASPNETCore10WebApp.aspx

我有 3 个现有的 .NET 4.5.1 类库,用 VB.NET 编写,但我认为这并不重要,因为它都在 CLR 上。
我的 ASP.NET 核心项目是 C#,面向 .NET 4.5.1。
这是我的项目.json的框架部分:

"frameworks": {
"net451": {
"dependencies": {
"WebApp.Api.Services": {
"target": "project"
}
}
}
},

如果我使用"将现有项目添加到解决方案"将所有 VB.NET 类库添加到解决方案中,并尝试将它们添加为项目引用,则会收到以下错误:

当前项目不支持项目 XXX 类型,无法添加 作为参考

我还尝试添加 C# 类库 (WebApp.Api.Services),添加对该库 VB.NET 引用,然后将 C# 类库添加为 ASP Core 项目的
引用 这样做会显示解决方案资源管理器中的引用 好的,似乎我可以使用 C# 类库中的类型,但我不能在我的代码中使用 VB.NET 库的类型。

我还创建了一个NuGet包,但是没有运气
,我可以以某种方式创建一个"包装器"项目,或者Visual Studio可以自动执行此操作。

有没有人尝试过将 VB.Net 项目添加到ASP Core解决方案中?

为 .NETCore 生成的项目不能使用为 .NET Framework 生成的类库。它们彼此不直接兼容。事实上,当你说:

我的 ASP.NET 核心项目是 C#,面向 .NET 4.5.1。

如果它面向 .NET 4.5.1,那么它实际上不是一个 .NET Core 项目。

您应该将类库移植到 .NET Standard;这样它们就可以被各种兼容的框架使用。也可以让一个类库面向多个框架。

我设法解决了我的问题。

这里的指南是正确的,我有另一个我没有意识到的不同问题。
我发现了一个System.BadImageFormatException错误,导致我遇到以下问题 在Visual Studio 2015
下以x86启动 asp.net 核心项目 我卸载了x94版本的.NET Core并安装了x86版本。

我仍然无法向 ASP Core 项目添加对 VB.NET 库的引用,因此我的 C# 服务"桥接"库至关重要。

在我的"桥"库中,我有可以从 ASP 控制器返回的模型:

Public BridgeModelA : VB.NETLibrary.ActualModelA
{
…
}

然后扩展

Public static VB.NETLibrary.ActualModelA ToModel(this BridgeModelA)
{
…
}

尽管无法在控制器中访问这些模型的基本成员,但由于 ASP 项目未引用 VB 项目,控制器会返回这些基本成员,其中包含包含所有基本成员的 JSON 结果。
这实际上很棒,因为它适合薄控制器的设计。

最新更新