2014-02-12 22 views
1

我有一个解决方案,其中包含2个Windows控制台项目,1个网站项目和20个类库。为特定项目定制生成构建输出

我希望TFS 2013推送到drop文件夹只有Windows控制台和网站项目到投递文件夹。

我正在寻找类似于下面的文件夹结构。

DropFolder 
    - App1 
    - App2 
    - Website1 

配置TFS的最好方法是什么?

感谢

UPDATE

我已经结束了使用NuGet包http://www.nuget.org/packages/PublishedApplications所有我想要要发布的项目。这将项目复制到_PublishedApplications文件夹中。所以,我有这样的

DropFolder 
    _PublishedApplications 
     - App1 
     - App2 
    _PublishedWebsites 
     - Website1 

回答

3
  • 默认的模板文件夹结构具有以下进程选项卡高级部分Solution Specific Build Outputs财产。 Solution Specific Build Outputs

  • 或者,您可以让MSBuild控制您的构建流程。

更新:

+0

我正在寻找的解决方案来自另一个[答](http://stackoverflow.com/a/12741336/183892)。使用金块包创建将Web项目放入_PublishedApplications中的目标。 – John

+0

这甚至更好。我已经更新了未来参考的答案。 – KMoraz

0

我用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年起(好像被遗弃的项目)。

相关问题