在我的.csproj文件中,我添加了以下配置:
<ItemGroup>
<None Include="$(USERPROFILE)\.nuget\packages\microsoft.data.sqlclient.sni\1.0.19235.1\buildTransitive\net46\x64\SNI.dll">
<!-- This is a workaround to include SNI.dll in the NuGet package resulting from the pipeline in Azure DevOps. -->
<Link>x64\SNI.dll</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
但是,很难找到关于如何使用 PreserveNewest
的文档。我查看了各种Stackoverflow帖子,并在文档页面下找到了 None
元素的部分,其中说明如下:
CopyToOutputDirectory 可选字符串。确定是否将文件复制到输出目录。值为:
- 从不
- 始终
- 保留最新的
这并没有真正描述它是如何工作的。有人知道吗?它根据什么标准决定什么是最新的?文件更改日期?其他版本元数据?“保留”是什么意思?
配置的目的是将SNI.dll
文件成功地复制到bin/x64
目录中。
仅在较新时复制
与保留最新
的组合可以澄清一些问题。我可以做出一个有根据的猜测,即它只会在引用文件比已有文件更新时才进行复制。虽然我希望在文档中看到这一点,但不知道现在是否还需要花更多时间来了解它。 - ptf