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

Posted

技术标签:

【中文标题】.Net core 3:手动添加框架依赖【英文标题】:.Net core 3: manually adding framework dependencies 【发布时间】:2019-11-28 14:29:41 【问题描述】:

自 3.0 版发布以来,现在可以在 .net core 中编写 WPF 应用程序,这真是太好了!

另一方面,在 .net core 上,依赖系统现在依赖于完整的框架,不再依赖多个 nuget。除非您想在同一个应用程序中混合例如 WPF 和 ASP.net 核心,否则这不是问题(我有一个案例,我想要一个带有处理 websockets 端点的 web 服务器的 UI)。

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

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>

有什么诀窍吗?

【问题讨论】:

【参考方案1】:

好的,I found it out(感谢安德鲁!):

只需在 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 不会。

【讨论】:

非常感谢,您的帖子刚刚结束了一个小时关于如何将 System.Windows.Data-using 放入我的 .NET core 3.1 类库的研究。添加框架依赖项似乎是每个人都认为任何人都已经知道的事情之一......

以上是关于.Net core 3:手动添加框架依赖的主要内容,如果未能解决你的问题,请参考以下文章

如何手动解密 ASP.NET Core 身份验证 cookie?

自动挡换手动挡:在 ASP.NET Core 3.0 Middleware 中手动执行 Controller Action

maven工程项目依赖爆红,手动导入依然缺少依赖

.net core 3.1 加入ORM框架(Dapper)

SpringMVC 中使用 @ResponseBody 返回Json时,需要手动添加jackson依赖

VsCode 手动配置omnisharp.NET Core Debuggerrazor