我在 .NET标准库中有一些后端逻辑(我们称之为Service
)并且必须有两种类型的入口点: .Net Core Console App 和 Windows服务作为该逻辑的入口点。我的Service
库有它自己的依赖项,其中一个依赖项(DAL
)使用NuGet,特别是MongoDB.Driver。当我编译它时,在bin/debug
服务中没有任何与mongo相关的库。但是Net Core Console App
确实有deps.json
,runtimeconfig.json
,runtimeconfig.dev.json
个文件,据我所知,这就是为什么一切都与Core Console完美匹配。
但它不适用于引用Standard
的Windows服务(Net 4.6.1)。 bin/Debug
中也没有Mongo,因此当我运行它时(它也被配置为控制台应用程序)我得到了
FileNotFoundException: Could not load file or assembly 'MongoDB.Driver, Version=2.5.0.0
这是合理的信息......但是这应该如何起作用呢?通常,Full .Net中的NuGet依赖项将与目标项目一起复制(并且还会复制到引用此项目的那些项目)。标准库不是这种情况。我只是害怕在这里重新发明轮子,可能有现成的解决方案吗?
答案 0 :(得分:1)
我有类似的问题;将以下内容添加到完整.NET项目的.csproj中。 它在GitHub
上进行了解释TIdHTTP
答案 1 :(得分:0)
看起来这也有效,但应该在.Net Standard的csproj中完成。
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>
我不确定哪种方法更好,等待评论。
答案 2 :(得分:0)