【问题标题】:Use TFS/ RM 2015 Environment Variables/ Custom configuration使用 TFS/RM 2015 环境变量/自定义配置
【发布时间】:2016-02-16 11:03:29
【问题描述】:

我有一个控制台应用程序,我正在使用 Visual Studio 构建在本地 tfs 2015 上构建。我想要实现的是:

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

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

这样的有趣内容
  • App.config 的外观如何?
  • C#代码中如何使用变量?
  • Release Management Client 中需要哪些设置?
  • 本地 TFS 构建定义中需要哪些设置?

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

谁能解释一下,如何实现所描述的场景“Hello Developer”/“Hello Tester”?

非常感谢!

【问题讨论】:

    标签: tfs tfs-2015 ms-release-management


    【解决方案1】:

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

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

    在 RM 中,您可以使用 MSDeploy 通过 PowerShell 命令针对目标服务器部署具有适当 SetParmeter 文件的包。

    【讨论】:

    • 您好,酋长,感谢您的回答和链接。但是看看上面提到的TFS2013链接(blogs.msdn.com/b/tfssetup/archive/2015/10/15/…)我希望有更好的方法来在tfs 2015中实现这样的控制台应用程序。有些事情我不喜欢你提到的方法:dll的硬编码路径( MSBuildExtensionsPath)\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.Tasks.dll) 并且没有真正的工具使用。 (例如,在 TFS2013 链接中的 Release Management Client 中配置 Build setup 之后)没有更多最新的了吗?
    • 在我看来,新的构建系统比 2013 年要好得多。我的评论 -dotnetcatch.com/2016/01/20/review-vsts-release-management-vnext 虽然目前还没有为 TFS 2015 on-prem 发布。您可以看到 VSTS 中的所有功能,这些功能应该会在未来一两个月内出现在 TFS 中。一般来说,我同意硬编码 dll 是一个坏主意,但这个特定的程序集是由 VisualStudio 提供的,可以假设它将在构建代理上。
    【解决方案2】:

    你试过SlowCheetah吗?

    此包允许您自动转换您的 app.config(或 任何文件)当您在 Visual Studio 中按 F5 时。你可以有不同的 基于构建配置的转换。这将使您 轻松拥有不同的应用程序设置、连接字符串等 调试与发布。如果你想转换其他文件,你可以做 那也是。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 2011-06-15
    • 1970-01-01
    相关资源
    最近更新 更多