问题标签 [xdt-transform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
11442 浏览

web-config - XDT 转换:InsertBefore - 定位器条件被忽略

我有一个 web.config 文件,如果它已经存在,我需要在其中插入<configSections />元素或操作该节点的子节点。
如果它已经存在,我不想再次插入它(显然,因为它只允许存在一次)。

通常,这不会是一个问题,但是:

如果此元素在配置文件中,则它必须是该元素的第一个子元素。

资料来源:MSDN

因此,如果我使用xdt:Transform="InsertIfMissing"<configSections />元素将始终插入在任何现有子元素之后(并且总是有一些),违反了它必须是的第一个子元素的上述限制<configuration />

我试图通过以下方式完成这项工作:

如果该<configSections />元素尚不存在,则效果很好。但是,我指定的条件似乎被忽略了。

事实上,我已经尝试了一些条件,例如:

最后,出于绝望,我尝试了:

它仍然插入了<configSections />元素。

需要注意的是,我正在尝试将其包含在 NuGet 包中,因此我将无法使用自定义转换(如 AppHarbor 使用的转换)。

只有当它还不存在时,是否有任何其他聪明的方法可以将我的元素放在正确的位置?

要对此进行测试,请使用AppHarbors config transform tester。将 Web.config 替换为以下内容:

和 Web.Debug.config 具有以下内容:

结果将显示两个<configSections />元素,一个包含“mySection”的元素是第一个元素,如 InsertBefore 变换中指定的那样。为什么没有考虑定位条件?

0 投票
2 回答
829 浏览

visual-studio-2012 - 保留命名空间前缀的转换

我正在尝试使用此 XDT 部分将 NLog 自定义配置部分插入到我的 Web.config 中:

当我运行 XDT 转换时,我的 Web.Debug.config 包含:

通常,命名空间前缀是任意的,因此将 xsi 转换为 d4p1 不会导致任何问题。

但是,当我使用d4p1. 手动更改实例d4p1xsi解决问题,但如果用户之后需要手动更改文件,它会颠覆我的配置转换实用程序。

有没有办法使用 XDT 保留命名空间前缀?

0 投票
1 回答
158 浏览

html - 像 XDT Transformation 一样转换 HTML

为了转换 html 文件,我开始使用 XDT Transformations。在我的 HTML 不符合 xhtml 之前,一切正常。但我也想转换“正常”的 HTML5,它不必符合 XHTML。您是否知道工具集或其他任何具有类似 XDT 转换的功能,但可以使用非 xml-conform HTML?

0 投票
0 回答
263 浏览

transform - NuGet release.config.install.xdt 保留转换

我正在创建一个包含web.release.config.install.xdt文件的 NuGet 包。但是,文件中的每个转换都由 NuGet 处理。

这是web.release.config.install.xdt文件的内容:

关于转义嵌套转换以便为 web.release.config 文件保留的正确方法的任何建议?

0 投票
1 回答
165 浏览

.net - 将手动转换转换为标准 xdt

因此,我想将 .Net 应用程序从使用某些先前的手动转换方法转换为 Troy Hunt http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity 所引用的 xdt 样式。 .html _ 我目前对变换不太熟悉,我想我可能只需要朝着正确的方向发展。

如何转换以下内容以便可以更改网络配置中的文件路径 c:\logs\blah.log?

会是这样吗?

0 投票
1 回答
212 浏览

asp.net - 构建时的 Visual Studio 2008 XDT(配置转换)

我在 Visual Studio 2008 中为几个不同的客户端维护一个 webforms 应用程序。每个客户端都有自己单独的 web.config 文件。我们在部署时使用了配置转换,效果很好。

目前有许多开发人员在从事此项目,并且在开发每个开发人员时都需要具有特定客户端的配置值。现在,我们正在做的是,我们每个人在本地都有自己的 web.config 版本,我们只是尽量小心不要签入 web.config 文件。

这种方法当然有几个缺点。我们需要手动执行此操作,这很烦人,我们需要非常小心不要检查配置文件,因为这可能会给其他开发人员带来麻烦,向配置添加新值很麻烦等。

我想在从 Visual Studio 构建时转换配置文件,因此我们可以选择从哪个文件获取配置值,而无需手动编辑 web.config。

我在网上找了一段时间,但到目前为止我发现的最好的是:http: //www.codeproject.com/Articles/399002/Project-Build-Web-config-transformation

这对我不起作用,它给了我一个构建错误,说它无法复制 Web.config_output 因为文件丢失。

0 投票
4 回答
37213 浏览

c# - 为 3 个不同的环境转换 app.config

我需要能够使用 msbuild 转换我的 app.config 文件。如果文件名为 app.DEBUG.config 或 app.Release.config,我可以转换该文件,但如果我添加一个名为 app.PROD.config 的文件,则不能。

如果我选择不同的 PublishProfile,使用常规 XDT 转换 msbuild 会识别不同的 web.config 文件

显然 app.config 不适用于相同的设置。我总是可以为 DEV.config 设置创建特定的构建配置,但为一个应用程序单独构建确认似乎没用。这样做的一个 hacky 方法是在每个环境 POST-BUILD 中复制正确的 app.config。

我尝试使用 SlowCheetah 插件,但这似乎只转换默认的 DEBUG 和 RELEASE 配置文件,这是不合适的,因为我有两个以上的环境。如果我确实使用了这个错误,请让我知道我应该将什么参数传递给 msbuild 以选择我的 app.DEV.config。

预期的结果是 msbuild 将根据自定义的名为 app.DEV.config 的变换或为 app.PROD.config 自定义的变换来变换 app.config。我希望有一个参数可以传递给 msbuild,它允许我使用 Release 配置,但每个环境使用不同名称的转换。

0 投票
1 回答
190 浏览

asp.net - 为现有 web.configs 编码转换文件(重新发明轮子?)

我想知道为什么任何人(包括我自己)都费心为 web.config 文件中的每个键创建极其冗长而乏味的 xdt 转换,而人们可以简单地将“替换”语句放在配置声明旁边。

让我用一个例子来解释:

您是一名开发人员,负责为大型 Web 应用程序创建一系列 web.config 转换。

您将获得每个环境的 web.configs,并被告知要进行以下操作:

  • 包含每个环境通用的所有键和值的基本 web.config
  • 包含因环境而异的所有键和值的转换文件集

这是一个示例基础 web.config:

这是基本 web.config 的示例转换:

根据需要输出以下内容:



这一切都很好,但是如果您是一个开发人员,正在基于已经存在的大量 web.configs 创建转换,那么与上述方法相比,执行以下操作会不会容易得多:

基础 web.config:

转换:

结果与前面的示例相同,涉及的工作要少得多:

我理解通过使用这种方法,当每个环境都需要发生变化时,变化需要反映在每个转换中;但除此之外,我看不到任何缺点。

请告诉我,我在这里遗漏了一些明显的东西,因为我发现花了我 8 多小时编写代码的转换可以在几秒钟内完成,没有明显的缺点

0 投票
3 回答
1409 浏览

asp.net - 使用 Web.Config 转换更改 log4net“参数”中的“大小”元素

我正在开发一个使用 log4net 的 ASP.NET 项目。在开发环境中,我希望将参数的size元素@stackTrace设置为比其他环境中更高的值。

log4net.config 文件的结构是:

我想将元素的value属性更改为 2000。size

我尝试了以下转换文件,但它没有改变任何东西:

“删除”是试图让事情发生的最后手段!

我应该怎么做才能执行所需的转换?我不清楚在这种情况下如何xdt:Locator结合。xdt:Transform

0 投票
1 回答
561 浏览

nuget - 可以使用 XDT 转换 nuget 包中的自定义 xml 吗?

我创建了一个 nuget 包,需要在安装时向现有 xml 文件添加一些配置。

xml 文件位于文件夹结构的深处,例如:/app/config/site1/settings.xml

是否可以使用 XDT 转换此文件并添加一些配置?