来自nuget包的一些dll不会复制到/ bin

时间:2013-06-24 17:03:46

标签: visual-studio-2012 nuget

我知道这是一个之前讨论过的问题,但我有一种我不理解的情况。

我有以下项目

  • 项目A.
    • 项目B.
      • NuGet Package“log4net”
      • NuGet包“ServerAppFabric.Client”

项目A有一个Visual Studio对项目B的引用。我在项目B的代码中使用这两个包,我正在调试模式下构建。 Project B config看起来像这样。

<Reference Include="log4net">
  <HintPath>..\packages\log4net.2.0.0\lib\net40-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.ApplicationServer.Caching.Client">
  <HintPath>..\packages\ServerAppFabric.Client.1.1.2106\lib\Microsoft.ApplicationServer.Caching.Client.dll</HintPath>
</Reference>
<Reference Include="Microsoft.ApplicationServer.Caching.Core">
  <HintPath>..\packages\ServerAppFabric.Client.1.1.2106\lib\Microsoft.ApplicationServer.Caching.Core.dll</HintPath>
</Reference>

*为什么只有log4net的dll文件被复制到Project A的bin文件夹而不是Client和Core文件?任何帮助或解释表示赞赏! *

2 个答案:

答案 0 :(得分:5)

我对某个复杂的依赖图有同样的问题。

  1. 转到参考属性并设置Copy Local = True。
  2. 编译并检查程序集是否已复制到bin文件夹。
  3. 如果这不能解决您的问题,请尝试以下答案:https://stackoverflow.com/a/19889803/1074245

答案 1 :(得分:3)

我不认为这与NuGet有关。它应该与引用在Visual Studio或MSBuild中的工作方式有关。如果您只引用ProjectB中的库,它将不会显示在ProjectA的bin文件夹中。但是,当您使用引用库中的某些类型时,它才会显示在bin文件夹中。