Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在JetBrains Rider的构建中转换.Config?_C#_.net_Web Config_Rider_Web.config Transform - Fatal编程技术网

C# 如何在JetBrains Rider的构建中转换.Config?

C# 如何在JetBrains Rider的构建中转换.Config?,c#,.net,web-config,rider,web.config-transform,C#,.net,Web Config,Rider,Web.config Transform,我试图根据环境创建自定义配置,似乎最好的方法是使用配置转换。我试图在构建时进行转换(在本地进行测试),但更改似乎不起作用。有什么想法吗?另外,在asp.net上为环境设置“分层配置”的正确方法是什么 帮我试试这个 在web.config(base)中 在appSettings节点下添加此配置 .. <appSettings> <!-- Application Settings --> <add key="IsTest" value="true" /> 。。

我试图根据环境创建自定义配置,似乎最好的方法是使用配置转换。我试图在构建时进行转换(在本地进行测试),但更改似乎不起作用。有什么想法吗?另外,在asp.net上为环境设置“分层配置”的正确方法是什么

帮我试试这个

在web.config(base)中 在appSettings节点下添加此配置

..
<appSettings>
<!-- Application Settings -->
<add key="IsTest" value="true" />
。。
然后在中,右键单击web.config并添加一个转换(add-config-Transform),如果您还没有这样做的话

在该配置中,您将只添加特定情况下的转换

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <appSettings>
      <add key="IsTest" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)" />
...

...

如果您正在从visual studio进行调试,请尝试将“调试”值保留在根配置中,然后假设您添加了UAT_发布配置和UAT_发布转换,然后在发布应用程序时检查转换是否已应用于web配置(这些应合并回基本配置中)用于无
web.config
转换(例如
app.config
) 这些似乎是根据构建配置进行转换的

web配置的根本问题是“原始”无法保留,因为www的bin直接使用项目中的.config。它不是作为构建的一部分进行的,因此应用转换将改变web配置。 (有一次尝试扩展解决了VS的问题,但还没有看到骑手的问题)

我的解决办法是

  • 添加一个本地生成配置文件,该配置文件是debug的副本,只是具有一个不同的名称
  • 板条箱xdt转换用于我的所有“开发”设置
  • 右键单击preview transform并手动将此转换应用于web.config(它是手动的,但迄今为止我得到的最好结果是,对我来说,web.config执行转换似乎失败了,或者我们会这样做)
  • 使用和应用于web的配置相同的配置构建项目,所有其他配置对我来说似乎都是自动转换的

  • 它应该可以工作,但请记住将debug保留为默认值,并为其他环境添加一个附加转换,因此当您使用debug时,您知道默认值适用,当您切换到release和build时,这些默认值将适用,但当应用程序发布时,只需查看一下发布位置,看看新的转换是否applied@EgliBecerra那么转换应该在构建过程中发生?由于某些原因,它似乎不适用于我您使用的是哪个版本的Visual Studio?还有几个关于web.config转换的问题,比如它们在xml中的格式,您知道吗?您还尝试过构建并发布到文件夹吗?一旦您这样做,请检查发布的输出,更具体地说是web.config,并检查转换是否已应用,这应该不会失败。只需使用“默认”web.config作为您的开发/调试版本,然后web.release.config当然将继续作为发布版本,因为它的转换是在发布时应用的。这是用于发布的,对吗?有没有办法进行调试?我真的很感谢您的帮助。这是为了发布,为了调试,如果有意义的话,请将调试配置变量保留在base web.config中