问题标签 [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 回答
992 浏览

xml - 错误列表窗口中没有 Visual Studio 警告或消息的外部 NLog.config

我使用 NLog 作为日志框架,并尝试找出哪些设置对于外部转换配置文件(例如 NLog.Debug.config)是“最佳”的。

项目的 wiki 页面上,有两个选项:

  1. 内联(例如在 Web.config 或 App.config 内)
  2. 外部配置文件中的简化 xml<nlog>作为根元素

这是一个示例配置:

尽管有许多命名空间,Visual Studio 2015 仍显示以下警告: The 'nlog' element is not declared.

当我将 nlog 部分放在一个<configuration>元素中时,此警告消失了,但出现了很多“消息”,表明名称、目标、异步等元素是未知的: Could not find schema information for the element 'target'.

如果我从命名空间定义 ( )中删除后缀nlogxmlns:nlog="... ,则根元素会被接受,但我会看到诸如 target、xdt:Transform、xdt:Locator 等元素的警告:

我已经尝试将命名空间移动到不同的元素或为每个元素或属性赋予相应的前缀,但没有任何帮助让所有警告或消息消失......

编辑:属性仍然标有警告,如: The 'http://schemas.microsoft.com/XML-Document-Transform:Locator' attribute is not declared.

0 投票
1 回答
2364 浏览

xml - 可以附加 web.config 的 XDT 转换

我正在尝试更新我的 web.config 中的现有 appSettings。我不想替换整个值,而是将我的新值附加到末尾。这可能吗?

当前值:

所需值:

这是我目前在我的转换文件中的内容:

0 投票
1 回答
258 浏览

nuget - XDT 转换消除了错误的输入

在 NuGet 中使用之前,我正在使用这个站点来测试我的 XDT 转换。当我有这个配置

并使用此转换:

结果是这个输出:

我不明白为什么条目 ApplicationInsightsWebTracking 被删除而不是 ErrorLog。在 NuGet 包中使用此转换时(删除包时),我得到了相同的结果。如何改变工作中的转换?

0 投票
1 回答
1284 浏览

xml - 阻止 app.config XML 转换的 MSBuild 条件

我正在使用“SlowCheetah”VS 扩展来根据项目配置使用不同的值转换我们的 app.config。因此,“调试”配置会生成具有适合 Dev/Qa 用户的值的 app.config,而“发布”构建会生成具有生产值的 app.config。

.csproj 包含这样的部分:

msbuild 逻辑主要包含在“SlowCheetah.Transforms.targets”文件中。我的文件正在正确转换。

我想防止开发人员意外地在 Visual Studio 中运行“发布”版本并无意中使用生产配置文件运行我的应用程序。我的想法是使用 msbuild 条件,可能类似于:

我尝试在 .csproj 文件中的多个位置使用此条件,但均未成功。我怀疑如果我修改“SlowCheetah.Transforms.targets”文件本身,我可以让它工作,但不应该根据顶部的评论修改该文件。

理想情况下,我希望 Visual Studio 内部构建的所有配置都使用我的调试配置文件,而 Visual Studio 外部的“发布”构建(例如在持续集成服务器上构建)使用 Prod app.config,但我会满足于能够防止在 Visual Studio 中意外运行“发布”版本。任何关于是否/如何实现这一点的建议都值得赞赏。

0 投票
1 回答
405 浏览

xdt-transform - 基于兄弟元素值应用 XDT 变换

鉴于此 XML 配置文件:

我想<cron-expression>Trigger2.

使用此转换:

当项目构建时,我看到编译器警告:

源文档中没有元素匹配“/job-scheduling-data/schedule/trigger/cron[name='Trigger2']”。

XPath 查询似乎是正确的,但从未应用该规则(因此出现编译器警告)。

我的项目配置为使用 Visual Studio 2015 中的 TransformXml 任务在构建时进行转换。

难道我做错了什么?

0 投票
1 回答
382 浏览

c# - 如何用 XDT 转换替换字符串

我要转换的配置如下所示:

我想做的就是替换D:\my\old\path\<unique value>D:\my\new\path\<unique value>

我只看到示例替换 <><> 之间的完整值或 <> 内的属性。我只想在文件中的任何地方做一个简单的字符串替换,这可能吗?

0 投票
1 回答
300 浏览

unity-container - 如何转换 nuget 包中的 unity.config 文件?

我正在尝试在 nuget 包的目标处转换 unity.config 文件的内容。该文件如下所示:

我想更新“mapTo”的值。我正在使用标准的 web.config.install.xdt 更新 web.config 中的一堆东西,但这里的关键问题似乎是统一命名空间和转换命名空间之间的命名空间冲突。因此,当我使用以下标头创建 xdt 进行转换时:

该文件中没有任何内容匹配,因为它正在查找具有实际根名称空间的文件,如下所示:

我开始倾向于使用 Powershell 脚本……任何人都可以使这种方法起作用吗?

0 投票
1 回答
439 浏览

app-config - app.config 转换 - nlog 规则记录器替换不起作用

App.config我有 nlog 部分:

App.debug.config我想替换:

和:

但保持其余节点不变:

所以在App.debug.config我写了:

但它并没有取代任何东西 - 只是留下了原始<nlog>节点的全部内容

我做错了什么?

0 投票
1 回答
343 浏览

xml - 转换 web config 替换元素以外的文件

我有一个 NLog.config,我必须指向另一个用于生产的数据库。我正在使用这个 工具来改造它。这是我的 NLog.Config 的一部分。

我已经创建了生产转换,但是无法转换文件。

这是我所拥有的

我们需要改变整个元素而不是属性。

0 投票
1 回答
316 浏览

c# - 使用转换后的发布配置部署本地 Web 应用程序

我们正在设置我们的发布定义,以最终完成我们在 VSTS 中的 CD/CI 设置的最后一部分,并且遇到了我们无法转换配置的问题。

目前,我们正在遵循Scott Hanselman 的方法,即通过 secrets.config 将连接字符串和秘密保留在我们的 web.config 之外,因为我们不希望将任何这些信息提交给源代码控制。如果这种情况有更好的实践,我们愿意切换,但目前不确定这将如何与 VSTS CD/CI 集成。

我们尝试使用XDT 转换扩展将我们的 web.base.config 转换为 web.config 以删除文件和 configsource 引用,但它似乎没有进行转换。

在此处输入图像描述

我们还使用了带有 XML 转换和 XML 变量替换的 IIS Web App Deploy 任务,但转换不起作用,因为工件中不存在 web.base.config。我不确定为什么没有在构建时加入。

在此处输入图像描述

我们想知道任何或所有这些不同步骤的最佳实践是什么,以及我们如何在不将配置设置提交到源代码控制的情况下成功完成本地部署。我们也想知道如何为控制台应用程序执行这种方法。