.Net Core 3:手动添加框架依赖项



自从3.0版本发布以来,现在可以在.net core中编写WPF应用程序,这真的很好!

另一方面,在 .net 核心上,依赖系统现在依赖于完整的框架,而不是更多和多个 nuget 依赖项。这不是问题,直到您想在同一应用程序中混合使用 WPF 和 ASP.net 核心(我有一个情况,我想要一个带有处理 websockets 端点的 Web 服务器的 UI(。

当我使用 VS2019 创建 ASP.Net 核心项目时,我获得了以下框架依赖项(在解决方案资源管理器中的程序集依赖项/框架节点上(:

  • Microsoft.AspNetCore.App
  • Microsoft.NETCore.App

另一方面,当我创建一个核心 3 WPF 项目时,我得到了以下框架依赖项:

  • Microsoft.NETCore.App
  • Microsoft.WindowsDesktop.App.Ref

我想作为依赖项获得的内容如下:

  • Microsoft.AspNetCore.App
  • Microsoft.NETCore.App
  • Microsoft.WindowsDesktop.App.Ref

如何将 Microsoft.NETCore.App 手动添加到 WPF 应用程序中(或反过来(?csproj中没有任何关于这一点的内容...

在 asp.net 核心的csproj中,我得到:

<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>

在 WPF 应用程序中,我得到:

<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UseWPF>true</UseWPF>
</PropertyGroup>

有什么技巧吗?

好的,我找到了(谢谢安德鲁!

只需在 csproj 中添加该部分:

<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

因此,在我的示例中,我只需将其添加到我的 WPF 项目中即可。

诀窍是该项目不属于同一类型。对于我们拥有的 WPF 之一:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

而对于 asp.net 核心,我们有:

<Project Sdk="Microsoft.NET.Sdk.Web">

后面的引用会自动嵌入 Microsoft.AspNetCore.App 引用,而 WPF 引用不会。

最新更新