首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >nuget包中的一些dll没有复制到/bin

nuget包中的一些dll没有复制到/bin
EN

Stack Overflow用户
提问于 2013-06-24 17:03:45
回答 3查看 22.2K关注 0票数 15

我知道这是一个以前讨论过的问题,但我有一个我不明白的情况。

我有以下项目

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

项目A有一个对项目B的可视化工作室引用。我在项目B中使用代码中的两个包,我正在调试模式下构建。项目B配置如下所示。

代码语言:javascript
复制
<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文件被复制到项目A的bin文件夹中,而不是客户端和核心文件?任何帮助或解释都将不胜感激!*

EN

Stack Overflow用户

发布于 2022-07-05 13:46:52

为了准确回答你的问题,我们需要知道几件事。

一种解释取决于您在项目A中有哪些引用--例如,除了引用项目B之外,项目A还包括其他引用,其中包括Microsoft.ApplicationServer.Caching.ClientMicrosoft.ApplicationServer.Caching.Core,可能将选项Copy local设置为false,但不包括log4net。在这种情况下,前两者的副本只会发生在项目B上。

另一种可能的解释取决于您的代码如何处理项目A和项目B中的引用。MSBuild过程不会自动复制项目中没有实际使用的引用的程序集。

最后,如果您依赖于构建事件来复制引用,请查看输出面板,以确保尽管编译成功,但没有出现错误。

无论如何,为了确保所有包都是复制的,我发现编辑.csproj文件很有用,并且在<PropertyGroup>标记中添加以下内容:

代码语言:javascript
复制
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

来自文档

如果将此CopyLocalLockFileAssemblies设置为true,则将任何NuGet包依赖项复制到输出目录。这意味着您可以使用dotnet的输出在任何机器上运行您的插件。

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17281012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档