问题标签 [web-config-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 投票
2 回答
1248 浏览

web-config - CodeAssassin.ConfigTransform 用于任意命名的配置文件

NuGet 包,例如CodeAssassin.ConfigTransform转换web.*.configapp.*.configweb.*.config.transformedapp.*.config.transformed在 VS 构建时。

但是,如果您有 form 的配置文件{arbitrary-name}.config怎么办?

例如,MyAssembly.dll.config它的变换规则集MyAssembly.dll.debug.config&MyAssembly.dll.release.config

CodeAssassin.ConfigTransform似乎不适用于这些文件模式。

0 投票
1 回答
1540 浏览

asp.net - 使用 Web.Config 转换插入多个项目

我有一个 C# 项目,它引用了很多 WCF 服务。对于本地测试,我想替换身份标签的内容,以便它接受在 localhost 上运行的任何内容。

以下转换有效,但仅在第一个匹配位置插入 dns 元素。所以,如果我有 5 个端点被引用,一个会有 dns 标签,而其他的都有空的标识元素。

如何更改所有匹配元素,而不仅仅是第一个?

0 投票
2 回答
737 浏览

web-config-transform - 删除匹配定位器的父级

有没有办法根据子属性定位节点?或删除匹配节点的父节点?

我需要运行 web.config 转换以删除以下第二个 <dependentAssembly> :

查找 <assemblyIdentity> 很容易,但我需要删除父 <dependentAssembly>(和 <codeBase>)。如果有一个 "xdt:Transform="RemoveParent" 这可以解决问题,但 AFAIK 没有。

或者,如果我可以在 <dependentAssembly> 上使用一个定位器来匹配孩子,那么它也可以工作。

0 投票
1 回答
266 浏览

settings - AppHarbor Web.config 转换错误

我有 web.config 文件覆盖设置文件中的项目,如下所示:

我有 web.release.config 可以转换这些设置:

当我在发布配置中发布解决方案时,它可以正常工作(我的意思是只有 url 与 web.config 不同)

但是当 Appharbor 发布应用程序时,我使用的页面出现运行时错误@Settings.Default.FacebookUrlAuth

具有以下详细信息:

无法识别的元素“设置”。(D:\websites\45\31968\17022\0x0001_PublishedWebsites\MVC.Web\web.config 第 73 行)

当我评论所有转换规则时,AppHarbor 从我的默认 web.config 中获取这些属性,并且一切正常。这是 AppHarbor 方面的问题吗?

0 投票
0 回答
726 浏览

web-config - 在 Visual Studio 2012 中预编译 ASP.NET MVC 4 项目时,它是否尝试在本地解析整个配置链?

有人可以确认或否认我在下面的假设和/或提供任何替代方案吗?

我的目标

当一键发布到我们的生产环境时,希望能够预编译和合并我的 ASP.NET MVC 4 应用程序(如此处和此处记录)。

症状

我在 Visual Studio 2012 中有一个 ASP.NET MVC 4 项目。我Web.config包含在Web.Release.config转换中删除的各种条目。删除的条目之一是整个configSections元素,因为我们在生产服务器的Machine.config.

但是,当我将项目配置为预编译和合并以发布发布时,我收到以下错误:

我的假设

我假设正在发生的是它在发布到生产服务器之前在本地预编译所有内容(这很有意义),但是预编译过程的那一部分是解决和验证从项目到我本地的整个.config链(这不实际上没有多大意义)。而且由于我的本地没有声明(或我们依赖生产服务器的任何其他设置),因此已解决的不验证。Web.configMachine.configMachine.configconfigSectionsMachine.configWeb.config

而且由于Web.config没有验证,该站点无法预编译,因此没有任何内容发布到生产环境中。

如果确实发生了这种情况,那么我们将无法预编译,因为我能想到的唯一解决方案(除了一些我无法找到的潜在配置选项)将是我们所有的开发人员都拥有我们生产服务器的本地副本Machine.config在他们的机器上。这根本不合理,因为它违背了在单个位置声明这些通用设置的整个目的。

0 投票
1 回答
3876 浏览

xpath - Web 配置转换条件/匹配以根据父节点属性选择节点

我有一个看起来像这样的变换

所以我希望 xdt:Locator 只有在父节点具有具有指定值的属性时才选择 f 节点。

xdt:Locator 被翻译成以下 xpath 表达式:

这是无效的。

所以问题是,我可以在 Condition 中放入什么,即 XPath 方括号,以便根据父节点中的属性选择 f 节点。

0 投票
2 回答
860 浏览

visual-studio-2010 - 调试时如何查看转换后的 web.config (SlowCheetah)

我已经安装了SlowCheetah plugin in VS 2010. 我可以预览变换web.debug.config它看起来是正确的。但是我认为调试时不会发生转换。

web.config调试时如何查看转换后的内容?

抱歉,如果这已经被问过,但我找不到专门查看文件的说明。

0 投票
6 回答
29198 浏览

asp.net - Web.config 构建与发布转换不起作用

我有一个 ASP.NET Web 应用程序项目,它通过实体框架连接到远程数据库。在调试期间(例如在我的本地计算机上运行项目),数据库的 IP 地址与发布期间不同(例如在将项目上传到我的网络服务器并从浏览器运行之后)。到目前为止,我一直手动更改 Web.config 文件中的数据库连接字符串以在两者之间切换(基本上我必须连接字符串,一个名为“Debug”,一个名为“Release”,我只是在部署时交换名称)。

现在我刚刚注意到应该可以通过Web.config 转换语法让这种情况自动发生,您将修改后的连接字符串放在 Web.Release.config 版本中,然后当 DLL 在 Release 配置下构建时它应该使用它.

然而它似乎对我不起作用......

这是我的常规 Web.config 文件的相关部分(其中包含本地使用的 Debug 连接字符串):

这是 Web.Release.config 文件,根据示例,如果 DLL 处于发布模式,则应将“DatabaseEntities”连接字符串“A”替换为“B”:

(显然“A”和“B”只是我真实连接字符串的占位符)

当我调试应用程序(例如,只需按 F5)时,使用默认的 Web.config,我可以访问数据库。然后我通过配置管理器将构建配置更改为发布。解决方案中的所有项目都设置为发布配置。然后我构建解决方案(仅通过构建,甚至通过完整的重建(例如清理、重建))。我将新建的 DLL 以及 Web.config 和 Web.Release.config 文件上传到网络服务器,当我尝试访问我无法访问的数据库时,它仍在尝试通过调试 IP 地址访问数据库因此找不到它...

似乎 Web.Release.config 文件被完全忽略了,或者至少连接字符串没有被替换。

我究竟做错了什么?转换语法是否错误?我没有在发布模式下正确构建应用程序吗?

0 投票
1 回答
333 浏览

web-config - 未使用 msbuild 应用 appSettings.config 文件转换

我继承了一个项目,该项目在单独的文件中包含 appSettings 和 Connectionstrings。使用 SlowCheetah 我为每个环境的每个文件生成了转换。

结构如下所示 appSettings.config appSettings.DEV.config appSettings.UAT.config appSettings.RELEASE.config

connectionStrings.config connectionStrings.DEV.config connectionStrings.UAT.config connectionStrings.RELEASE.config

我使用 Visual Studio 2010 中的发布功能在本地测试了转换。一切都很好。但是,当我在 TFS 中创建构建定义并通过 msbuild 自动部署时,不会应用转换。例如,发布 appsettings 文件包含基本文件的内容。不应用任何变换。我想知道是否有其他人尝试过这个,他们是否遇到过同样的问题。谢谢你的时间。

0 投票
3 回答
2594 浏览

.net - 根据 Web.config Transform 中的子节点值选择节点

我的 Web 配置中有以下 XML,我想使用 web.config 转换选择要删除的属性,但我想根据其中一个子元素的值选择要删除的元素。

我的 web.config 是这样的:

我尝试了以下尝试根据子元素选择要删除的第二个代理元素,<param desc="database">master</param>但没有成功。