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 包指定输出文件夹?
基础教程推荐
- .NET SerialPort DataReceived 事件未触发 2022-01-01
- 如何使用 .Net 检查 Active Directory 服务器是否已启动并正在运行? 2022-01-01
- WPF 模态进度窗口 2022-01-01
- C# 从 List<List<int>> 中删除重 2022-01-01
- 如果有人提交恶意软件Nuget包怎么办? 2022-01-01
- Azure Functions:CosmosDBTrigger 未在 Visual Studio 中触发 2022-01-01
- 禁止输入少量字符,例如'<'、'&a 2022-01-01
- 当值可以是对象或空数组时反序列化 JSON 2022-01-01
- 我应该在后面的代码中直接使用 Linq To SQL 还是使 2022-01-01
- Moq It.Is<>不匹配 2022-01-01
