我用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
后,我能得到通过改变最后<Copy SourceFiles
(原COMM我想要的东西ented出):
<!--<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年起(好像被遗弃的项目)。
我正在寻找的解决方案来自另一个[答](http://stackoverflow.com/a/12741336/183892)。使用金块包创建将Web项目放入_PublishedApplications中的目标。 – John
这甚至更好。我已经更新了未来参考的答案。 – KMoraz