asp.net - 我可以使用 msbuild 打包带有发布配置文件的网站并跳过 web.config 转换吗?

标签 asp.net msbuild web.config-transform

我有一个包含三个发布配置文件的网站解决方案,我们用它来转换每个目标环境的连接字符串:

  • 测试 - 本地主机连接,无转换,默认检查
  • 暂存 - 虚拟机环境
  • 生产-真正的交易

  • 我们还有一些应用程序设置需要针对每个环境进行转换。因此,我们使用了常规的、基于构建配置的转换。
  • 调试 - 暂存的转换设置
  • 发布 - 生产的转换设置

  • 当我们尝试打包测试配置文件时,这让我们陷入困境。我们将其打包,以便测试人员可以从构建工件而不是源代码在他们的系统上进行部署。但是,Test 包会选择 Debug 应用程序设置转换。

    有没有办法告诉 msbuild 使用测试配置文件打包网站,但跳过配置转换? 或者我应该围绕环境重构构建配置? (也就是说,单独保留调试和发布并为每个环境创建一个构建配置)

    命令行构建语句

    我正在调试解决方案配置下构建我的测试配置,它肯定会选择转换后的 Web.Debug.config文件。没有 Web.Test.config 文件,因为 Test 是“发布配置文件”而不是构建配置。
    cmd> msbuild websites.sln /t:Build /p:Configuration=Debug;Platform="Any CPU";DeployOnBuild=true;DeployTarget=Package;PublishProfile=Test;VisualStudioVersion=11.0
    

    也许我在这里做错了什么。我确实觉得配置/平台是多余的,因为我也在发布配置文件对话框中提供了这些。 Visual Studio 版本对我来说是一个惊喜,但它是生成 zip 包所必需的。

    最佳答案

    我会为每个环境构建一个配置以保持一致性。但是,如果未为特定环境(即 web.Test.config)提供配置,则发布的构建将仅使用放入原始 web.config 文件中的内容,而不进行转换。

    关于asp.net - 我可以使用 msbuild 打包带有发布配置文件的网站并跳过 web.config 转换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17951775/

    相关文章:

    javascript - 如何使用asp.net和jquery上传文件

    asp.net - 在浏览器中调试 Flex/Flash

    c# - 如何在 Visual Studio 2017 项目(新的 .csproj 文件格式)中设置 `OutputPath` 而目标框架不会混淆已解析的路径?

    msbuild - 在 VSTS 中,如何将电子邮件通知任务添加到构建和发布定义中?

    c# - 使 web.config 动态化

    ASP.Net 图表 LabelURL

    c# - 为什么 IdentityUser 类在 Microsoft.AspNet.Identity.EntityFramework 命名空间中而不是在 Core 包中?

    c# - 在 MSBuild 的解决方案中循环项目

    NuGet 包转换配置转换文件

    c# - 如何在构建 JetBrains Rider 时转换 .Config?