我也使用过PublishedApplications NuGet 包,但遇到了问题。如果引用的库已Content
标记为Copy Always
所有内容将被复制到根文件夹而不是分层。例如,如果您有以下项目和结构(为简洁起见,省略了一些文件):
PublishLib
test
TextFile1.txt (marked as Content/CopyAlways)
TestPublishTargetApp - references PublishLib
targets
Microsoft.Application.targets
团队构建完成后,这是_PublishedApplications\TestPublishTargetApp
文件夹的内容:
PublishLib.dll
TestPublishTargetApp.exe
TestPublishTargetApp.exe.config
TestPublishTargetApp.pdb
TextFile1.txt
我所期望的是:
test\TextFile1.txt
PublishLib.dll
TestPublishTargetApp.exe
TestPublishTargetApp.exe.config
TestPublishTargetApp.pdb
在摆弄了一下之后,Microsoft.Application.targets
我能够通过更改 last 得到我想要的东西<Copy SourceFiles
(原来的注释掉了):
<!--<Copy SourceFiles="@(_SourceItemsToCopyToOutputDirectoryAlways)"
DestinationFolder="$(ExeProjectOutputDir)"
SkipUnchangedFiles="false"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>-->
<Copy SourceFiles="@(_SourceItemsToCopyToOutputDirectoryAlways)"
DestinationFiles = "@(_SourceItemsToCopyToOutputDirectoryAlways->'$(ExeProjectOutputDir)\%(TargetPath)')"
SkipUnchangedFiles="false"
Retries="$(CopyRetryCount)"
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"/>
我不确定这对其他人是否有用,但对我来说这是必不可少的更改,而且PublishedApplications
NuGet 包自 2014 年以来没有更改(似乎是废弃的项目)。