混合.Net Standard和.Net Framework时,如何自动部署隐藏的NuGet依赖项的C#DLL?

时间:2019-04-18 06:10:19

标签: c# .net nuget

我有一个Visual Studio(2017)C#解决方案,其结构如下:

  • 解决方案
    • ExeProject
    • DLLProject
      • Stateless软件包的NuGet依赖关系(“无状态”是软件包的名称)

DLLProject将依赖项隐藏在其接口内,即,Stateless库的使用应该是DLLProject的实现细节。

ExeProject仅访问DLLProject的公共接口和工厂。

由于超出此问题范围的原因,ExeProject的目标是.Net Framework 4.6.1,而DLLProject的目标是.Net Standard 2.0

这可以正常编译,但是在调试时,可执行文件找不到Stateless.dll

针对DLLProject进行链接时是否可以自动部署该DLL,而无需向Stateless添加ExeProject NuGet依赖项?

1 个答案:

答案 0 :(得分:1)

在.NET Core中,此可传递的NuGet依赖项自动工作。

在.NET Framework上,引用的库有一个“复制本地”选项。对于有问题的,请确保将其设置为True。

更新

对于您的情况,.NET Framework应用程序和.NET Standard库,设置需要手动修改.NET Framework应用程序的.csproj文件。请注意: Copy all dependencies from .Net Standard libraries to .Net Framework Console application