2017-10-10 150 views
0

我试图建立一个巩固的使用web.config文件转换前提的Team Foundation Server 2015年的控制文件夹名称。转换基于我选择的构建配置正常工作。我有3个构建配置:调试,发布和我创建的一个,称为“分段”。我试图让它可以通过在队列时间设置$(BuildConfiguration)变量来重新使用相同的Build来适应不同的环境。在我的TFS构建的“Visual Studio中建立”的步骤,当我设置$(BuildConfiguration),以“调试”构建输出到像这样的代理文件夹:$(Build.SourcesDirectory)\ projectFolder \ OBJ \调试\包\ PackageTmp 。如果我将它设置为“释放”,那么它将转到$(Build.SourcesDirectory)\ projectFolder \ obj \ Release \ Package \ PackageTmp。在这两种情况下,Web.config文件都可以正确转换。但是,如果将生成配置设置为“Staging”,则这些文件仍放置在“Debug”文件夹$(Build.SourcesDirectory)\ projectFolder \ obj \ Debug \ Package \ PackageTmp中,而不是“Staging”夹。 (转换也是在这种情况下正常工作,并使用分段值)TFS 2015年 - Visual Studio的生成步骤 - 发布位置

这在我的“复制文件”这一步骤产生了一个问题。我在这一步为$(Build.SourcesDirectory)“源文件夹”值\ projectFolder \ OBJ \ $(BuildConfiguration) \包\ PackageTmp,但使用时的“试运行”,它不能找到源文件夹,因为TFS是将构建文件放在“Debug”文件夹中。

有没有办法迫使TFS放置匹配构建配置参数文件夹中的内置项(我的web应用程序的文件,基本上),在这种情况下,“转移”?

回答

0

注意:最好不要使用web.config转换,而要构建一次,并允许在部署时间(通过注入适当的值或使用MSDeploy参数)将您的web.config转换为

这就是说,你可以控制与/p:OutDir=的MSBuild参数输出文件夹。

然而,我怀疑你只需要在Visual Studio中打开你的项目设置,进入Build标签,并在那里设置一个适当命名的输出文件夹。

+0

为什么最好不要使用转换?他们似乎工作正常,很容易实现我的目的。 尝试了OutDir或OutputPath参数,但它们不适用于我。这是在TFS服务器上构建的,我希望基于构建配置来设置输出位置,所以我不知道VS中的Build选项卡将如何帮助? – cheluto2