使 Web.config 转换在本地工作

2024-05-01

我想让 web.config 转换在本地工作,但显然这些转换仅在进行部署时发生。

有谁知道一种方法来运行 msbuild 目标“TransformWebConfig”,而不需要经历“重建”过程,并指定和输出目录来吐出转换后的 web.config?

EDIT:使用 Sayed 的答案,我创建了一个.bat文件来为我运行任务:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Msbuild.exe "D:\Demo\Transformation.proj" /t:TransformWebConfig 

copy /Y  "D:\Demo\Web.config" "D:\MyProject\Web.config" 

del ""D:\Demo\Web.config"

“Transformation.proj”是下面答案中 Sayed 代码片段的副本。只需指定转换的源、目标和目的地。新文件(在本例中为转换后的“web.config”)将位于“D:\Demo”目录中。我只是将其复制以覆盖项目的 web.config,最后删除“demo”文件夹中生成的文件。

另外,我创建了一个宏来运行这个批处理文件并为我执行转换:

Public Module DoTransform
    Sub RunTransformBatchFile()
        Try
          Process.Start("D:\Demo\RunTransform.bat")
        Catch ex As System.Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Module

您还可以在工具栏上添加一个按钮来运行此批处理和/或分配一个快捷键来执行。


如果您想在不使用 Web 发布管道的情况下转换配置文件,那么您只需手动使用 TransformXml 任务即可。我已经在以下位置写了一篇详细的博客文章:http://sedodream.com/2010/04/26/ConfigTransformationsOutsideOfWebAppBuilds.aspx http://sedodream.com/2010/04/26/ConfigTransformationsOutsideOfWebAppBuilds.aspx,但重点是:

<Project ToolsVersion="4.0" DefaultTargets="Demo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <UsingTask TaskName="TransformXml"
             AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll"/>

    <Target Name="Demo">
        <TransformXml Source="app.config"
                      Transform="Transform.xml"
                      Destination="app.prod.config"/>
    </Target>
</Project>

这里我使用transform.xml文件手动转换app.config文件,目标文件是app.prod.config。

您提到的一件事是能够在运行应用程序时在本地进行转换。我们只对 package/publish 执行转换的原因是,如果我们转换 web.config 本身,那么下次您调试应用程序时,web.config 会再次转换。因此,例如,如果在 web.debug.config 中您进行了向配置添加值的转换,则第一次添加时一切正常,但下次运行/调试应用程序时它将再次添加。所以最好避免这种情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使 Web.config 转换在本地工作 的相关文章

  • 静态文件不通过 IIS 提供服务,而是通过 localhost 提供服务 - ASP.NET Core 3.1 MVC 和 C#

    我是编程新手 我能够自己解决大部分问题 但这个问题超出了我的想象 我正在使用 Visual Studio 在本地运行我的应用程序 当我在 VS 中单击 IIS Express 来运行该应用程序时 该应用程序将在带有 url 的浏览器中打开h
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 从 JavaScript 中的 OnClientClick 事件中阻止 C# 中的 asp:Button OnClick 事件?

    我有一个asp Button在我的网页上 它调用 JavaScript 函数和代码隐藏方法 后者进行调用以导航到另一个页面 在 JavaScript 函数中 我正在检查条件 如果不满足这个条件 我想中止导航 以便OnClick方法未被调用
  • idleTimeout 和 ShutdownTimeout 之间的区别

    我正在尝试放宽网站的会话过期策略 以便用户可以指定会话超时间隔 我需要弄清楚应该指定哪些网站相关设置 以免过多限制用户 例如 可能需要 1 天的间隔 我将使用门票来实现这一点 现在 我知道我可以在网站的 web config 文件中指定id
  • 如何禁用/覆盖内容页面控件 ID 的命名容器 ID 生成

    我们有一个现有的 ASP Net Web 应用程序 我们希望使用母版页将其转换为该应用程序 在执行此操作的过程中 我发现为 HTML 元素生成的 HTML id 以 ContentPlaceHolder 的 id 为前缀 这就是当我们设置
  • 多选复选框下拉

    我正在使用多选复选框下拉菜单 请看例子jsfiddle http jsfiddle net manthan11 qqhczbvs 6 function lstStates multiselect 选择州后 它会显示 TEXT 值并用逗号连接
  • 为什么在 C# 中使用 String.Concat()?

    我想知道这个问题有一段时间了 为什么使用String Concat 而不是使用 操作员 我明白了String Format因为它是一个空洞使用 运算符并使您的代码看起来更好 例如 string one bob string two jim
  • 两个日期范围之间相交的天数

    有人知道如何最好地计算两个日期范围之间相交的天数吗 这是我写的一个小方法来计算这个 private static int inclusiveDays DateTime s1 DateTime e1 DateTime s2 DateTime
  • 直接将 .aspx 转换为 .pdf [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无法获取本地或参数的值,因为它在此指令指针处不可用,可能是因为它已被优化掉

    Visual Studio 2010 会删除 没有其他词 不安全块中函数参数之一中的数据 什么可能导致此错误 调试器显示以下消息 Cannot obtain value of local or argument as it is not a
  • 如何在 ASP.NET MVC 中使用 Html.Action() 将参数传递给 Action?

    我一直在使用Html Action ActionName ControllerName 跨控制器调用子操作 而无需在 Views Shared 中拥有视图 这对于显示会话或 cookie 信息等内容非常有效 我不只是访问 cookie 而是
  • 选择 asp.net CheckBoxList 中的所有项目

    ASP NET 和 C 我想要一个带有 全选 项目的复选框列表 当这个特定项目是 已选择 所有其他都将被选择 也 当选择被删除时 这个项目 也将来自所有人 其他物品 选中 取消选中 任何其他项目只会有一个 对特定项目的影响 无论选择状态如何
  • 通过 SharpDX 渲染 Direct2D 图像时如何使用内存流而不是文件?

    设置 考虑使用给定的临时程序SharpDX http code google com p sharpdx Direct 库的托管包装器 用于渲染位图并将其保存为 PNG namespace ConsoleApplication5 using
  • 如何为本机启用现有 WCF 服务的 JSONP?

    我有一个现有的服务 如下方法 AspNetCompatibilityRequirements RequirementsMode AspNetCompatibilityRequirementsMode Allowed ServiceBehav
  • 当checked属性为false时,单选按钮默认被选中?

    我正在尝试生成单选按钮 有条件地检查检查的属性 如果该值存在于数据库中 则应选择它 否则检查的属性为 false 所以最初数据库中没有行 所有单选按钮的检查属性也为 false 但仍然在 UI 上选择 请参见下图 所以不知道这是默认行为还是
  • CSS、Javascript 和图像的长度为零

    我正在尝试将 ASP NET MVC 1 0 Visual Studio 2008 项目移植到 ASP NET MVC RC 2 Visual Studio 2010 该项目 并且一直 在 IIS 7 上运行 动态内容 由控制器提供的所有内
  • 在 .NET 程序集或可执行文件中嵌入文本文件[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 NET 程序集中嵌入文本文件 https stackoverflow com questions 433171 how to embed a text file in a net assemb
  • 管理调试和发布连接字符串

    在 NET SQLServer 应用程序中管理调试和发布连接字符串的好方法是什么 我有两个 SQL Server 一个是生产服务器 一个是构建 调试服务器 我需要一种在部署 ASP NET 应用程序时在这两个服务器之间进行切换的方法 目前
  • ASP.Net 应用程序中的音频/视频/文本聊天

    我需要在 ASP Net 中开发一个聊天系统 我已经浏览了很多关于类似主题的问题 但没有找到任何一个令人满意的 是否可以从头开始创建它 或者我是否需要使用一些 API 我的要求仅限于我的网站用户 可以说基于内联网 请帮我 要进行文字聊天 人
  • HTML 属性 bgcolor 已弃用:用什么代替?

    VStudio ASP NET 给出以下消息 Attribute bgcolor is considered outdated A newer construct is recommended 推荐的结构是什么 bgcolor是在一个 td

随机推荐