How to specify output folder for the referenced nuget packages?(如何为引用的 nuget 包指定输出文件夹?)
问题描述
我有一个项目,其中引用了一些 nuget 包.
I have a project with some nuget packages referenced.
在输出文件夹(binDebug 或 binRelease)中,所有引用的库都位于可执行文件旁边.
In output folders (binDebug or binRelease), all referenced libraries lie next to the executable.
如何指定库的输出文件夹?
我想要 binReleaseLibs 中的所有 nuget 库和 binRelease 中的可执行文件.
How to specify output folder for libraries?
I want all nuget libraries in binReleaseLibs and executable in binRelease.
推荐答案
感谢 zivkan 的 调查我找到了答案.传统项目的目标 CopyFilesToOutputDirectory 取决于 _CopyFilesMarkedCopyLocal 目标.在最后一个我们有任务 Copy:
Grace to the zivkan's investigation I found the answer. Traditional project has target CopyFilesToOutputDirectory which depends on _CopyFilesMarkedCopyLocal target. In this last one we have task Copy:
<Copy
SourceFiles="@(ReferenceCopyLocalPaths)"
DestinationFiles="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')"
SkipUnchangedFiles="$(SkipCopyUnchangedFiles)"
OverwriteReadOnlyFiles="$(OverwriteReadOnlyFiles)"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
UseHardlinksIfPossible="$(CreateHardLinksForCopyLocalIfPossible)"
UseSymboliclinksIfPossible="$(CreateSymbolicLinksForCopyLocalIfPossible)"
Condition="'$(UseCommonOutputDirectory)' != 'true'"
>
在这里我找到了元数据 DestinationSubDirectory,这正是我需要更改的.
And here I found metadata DestinationSubDirectory which is exactly what I need to change.
首先,我们需要更改csproj文件并添加以下几行:
First, we need to change csproj file and add these lines:
<ItemDefinitionGroup>
<ReferenceCopyLocalPaths>
<DestinationSubDirectory>lib</DestinationSubDirectory>
</ReferenceCopyLocalPaths>
</ItemDefinitionGroup>
第二,我们需要修改app.config文件让程序集知道库的路径:
Second, we need to change app.config file to let the assembly know the path to the libraries:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib;libs" />
</assemblyBinding>
</runtime>
就是这样.所有引用的库将被复制到子文件夹 lib
That's all. All referenced libraries will be copied into subfolder lib
这篇关于如何为引用的 nuget 包指定输出文件夹?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何为引用的 nuget 包指定输出文件夹?
- 输入按键事件处理程序 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
