为什么一个.net库需要引用其他.net库的依赖项

时间:2018-08-28 02:07:14

标签: c# .net visual-studio .net-core .net-standard

我面临一个奇怪的问题。我的解决方案中有多个.net标准类项目。有一个名为Messaging(.csproj)的.net 标准2.0 类库项目,该项目使用 ActiveMQ 从其中推送和读取数据。该项目参考Apache.NMS库。现在,我有另一个名为 Core .csproj)的项目,该项目引用了Messaging项目。在Core项目的Messaging项目内的类的构造函数调用期间,我收到系统找不到Apache.NMS dll的错误。如果在Core项目中添加此引用,则一切正常,但我真的不明白为什么会这样。使用纯.net框架,我从来没有遇到过这个问题。使用自己的参考文献将项目分开,并独立工作。 有人可以帮忙吗? 我添加了来自nuget的所有引用

1 个答案:

答案 0 :(得分:0)

经过大量研究,我找到了解决此问题的方法。发生的是在.NET Framework /标准项目的bin文件夹中,未复制引用项目的依赖dll。

.NET Framework项目解决方案: 打开.csproj文件,并在第一个标记中添加以下行

<RestoreProjectStyle>PackageReference</RestoreProjectStyle>

.NET Standard / Core项目的解决方案: 打开.csproj文件,并在第一个标记行下方添加

<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

现在编译项目,您将看到bin文件夹中存在所有必需的dll。 希望这可以帮助面临相同问题的其他人。