我正在尝试在我的一个 C# 项目中应用配置转换。当我对 QA 配置文件执行"预览转换"时,我可以看到应用的转换,但是当我使用 QA 配置文件发布时,我仍然可以看到部署中的默认配置(而不是转换后的配置(。我不想要构建上的转换(我知道慢猎豹在这方面有所帮助(,我只需要在发布时进行转换。我们是否需要在 .csproj 文件中执行任何更改才能在发布时启用转换。
编辑:通过gkb添加示例配置请求。我们在 web.config 中有条目:
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)MSSQLLocalDB;AttachDbFilename=|DataDirectory|xxxx.mdf;Initial Catalog=xxxx;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
我的网络有下面。Debug-QA.config:
<?xml version="1.0" encoding="utf-8"?>
<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
在我们的项目中,我们有两个不同的步骤:
-
在构建时用慢猎豹变换
(我知道你写过你不想使用它,但试一试(
在构建时,我们在配置中创建令牌。app.release 文件如下所示:
<?xml version="1.0"?>
<!-- For more information on using app.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add key="InstrumentationKey" value="__InstrumentationKey__" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
</appSettings>
</configuration>
例如,在发布构建后,我们的应用程序配置如下所示:
<configuration>
<appSettings>
<add key="InstrumentationKey" value="__InstrumentationKey__" />
</appSettings>
</configuration>
- 在发布时,我们会为每个特定环境替换令牌
我不知道你的发布过程...但是在我们的例子中,我们为每个环境提供了一个替换列表。
当我们发布时,所有令牌(带有两个下划线的家伙(都会替换为每个环境的特定值。