首页 > 解决方案 > 当它有自己的 NuGet 依赖项时,如何从 Full .Net 引用标准库

问题描述

我在.NET Standard 库中有一些后端逻辑(我们称之为Service),并且必须有两种类型的入口点:.Net Core Console AppWindows 服务作为该逻辑的入口点。我的Service库有它自己的依赖项,其中一个依赖项 ( DAL) 使用 NuGet,特别是 MongoDB.Driver。当我编译它时,在bin/debugService 中没有任何与 mongo 相关的库。但是Net Core Console App确实有deps.json, runtimeconfig.json,runtimeconfig.dev.json文件,据我所知,这就是为什么一切都可以在 Core Console 上完美运行的原因。

但它不适用于引用Standard. 也没有 Mongo,bin/Debug因此当我运行它时(它也被配置为控制台应用程序)我得到了

FileNotFoundException: Could not load file or assembly 'MongoDB.Driver, Version=2.5.0.0

这是合理的信息......但是这应该如何工作呢?通常,完整 .Net 中的 NuGet 依赖项与目标项目一起复制(也复制给引用该项目的人)。标准库并非如此。我只是害怕在这里重新发明轮子,可能有很好的现有解决方案吗?

标签: c#.netmongodb.net-core.net-standard

解决方案


我有一个类似的问题;将以下内容添加到完整的 .NET 项目的 .csproj 中。GitHub上有解释

<PropertyGroup>  
   <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
   <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
   <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

推荐阅读