2016-02-16 71 views
0

我有一个控制台应用程序,我使用Visual Studio Build在本地tfs 2015上构建。我想实现的是:使用TFS/RM 2015环境变量/自定义配置

如果在正常开发过程中在开发机器上执行应用程序,将会出现一个简单的消息“Hello Developer”,并且如果它在qa环境中部署并且测试人员从那里运行它它应该打印“Hello Tester”。只是一个简单的演示。

所以我想我需要一个App.config来存储一个配置,这个配置在构建过程中不会改变。我有信心,这是一个没有道理,因为我发现很多网站描述这样的事情,但事实证明,他们都没有透露像

  • 如何App.config需要看看喜欢?
  • C#代码中使用的变量如何?
  • 发布管理客户端需要的设置是什么?
  • 本地TFS构建定义中需要的设置是什么?

或被过时(TFS 2013 (1)RM Client 2013 (2))或使用Visual Studio Online/ Team Services或使用custom tasks

有人可以解释我,如何实现描述的场景“Hello Developer”/“Hello Tester”?

非常感谢!

回答

1

我们使用MSDeploy进行此类设置。您可以通过将csproj文件中的Import行添加到项目中的新.targets文件来扩展MSBuild。引用MSDeploy任务并使用它为控制台应用程序创建MSDeploy包。最后,创建参数化文件,以便为每个环境定义您想要转换的配置部分以及适当的消息的SetParameters文件。

This blog post用于数据库项目,但基本步骤相同。

在RM内部,您可以使用MSDeploy通过PowerShell命令通过适当的SetParmeter文件对目标服务器进行部署。

enter image description here

+0

嗨,首席,感谢您的回答和链接。但看看上面提到的TFS2013链接(http://blogs.msdn.com/b/tfssetup/archive/2015/10/15/tokenization-with-release-management.aspx)我希望有更好的方法来在tfs 2015中实现这样的控制台应用程序。在你提到的方法中,我不喜欢一些东西:硬编码路径到dll(MSBuildExtensionsPath)\ Microsoft \ VisualStudio \ v14.0 \ Web \ Microsoft.Web.Publishing.Tasks.dll)并且没有真正的工具用法。 (例如,在TFS2013链接的发布管理客户端中配置了构建设置后)没有其他更新了吗? – timtos

+1

我认为新的构建系统比2013年好得多。我的评论-http://dotnetcatch.com/2016/01/20/review-vsts-release-management-vnext/虽然目前尚未在TFS 2015上发布。您可以看到VSTS中的所有功能,这些功能将在未来一两个月内发送到TFS。总的来说,我同意硬编码DLL是一个坏主意,但是这个特定的程序集提供VisualStudio,可以假定它将在构建代理上。 – chief7

0

你有没有试着用SlowCheetah

此包允许您在Visual Studio中按F5时自动转换app.config(或 任何文件)。您可以根据构建配置进行不同的 转换。这将使您 可以轻松地为 调试版和发布版提供不同的应用程序设置,连接字符串等。如果你想转换其他文件,你也可以做 。

+0

感谢您的输入!我没有真正尝试过。只读一点关于它。但它似乎不适合发布管理方案。我想我会先尝试'Tokenizer':https://msdn.microsoft.com/Library/vs/alm/Release/examples/azure/change-config-azure-webapps – timtos