首页 > 解决方案 > 如何在 WPF 应用程序上创建多个配置

问题描述

我有一个 WPF 项目,它连接到业务逻辑项目类库,业务逻辑连接到 Web 服务。由于 Web 服务有本地、UAT 和生产版本。我想在一个App.config下创建一个App.Debug.config、App.UAT.config、App.Release.config。我正在尝试从我以前的 Web 应用程序中做同样的事情,但我不知道为什么它不起作用。我能够创建 3 个配置,但调试时值没有改变。我使用了 XML-Document-Transform 但不起作用。这是我尝试过的:

.csproj

<PropertyGroup>
  <ProjectConfigFileName>App.config</ProjectConfigFileName>
</PropertyGroup>
<ItemGroup>
   <None Include="App.config" />
   <None Include="App.Debug.config">
     <DependentUpon>App.config</DependentUpon>
   </None>
   <None Include="App.UAT.config">
     <DependentUpon>App.config</DependentUpon>
   </None>
   <None Include="App.Release.config">
     <DependentUpon>App.config</DependentUpon>
   </None>
</ItemGroup>

应用程序配置

<configuration>
  <appSettings>
    <add key="WCFURL" value="test.com/default.svc" />
  </appSettings>
</configuration>

应用程序调试配置

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="WCFURL" value="test.com/debug.svc" xdt:Locator="Match(key)" xdt:Transform="Replace"/>
  </appSettings>
</configuration>

应用程序.UAT.config

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="WCFURL" value="test.com/uat.svc" xdt:Locator="Match(key)" xdt:Transform="Replace"/>
  </appSettings>
</configuration>

App.Release.config

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="WCFURL" value="test.com/release.svc" xdt:Locator="Match(key)" xdt:Transform="Replace"/>
  </appSettings>
</configuration>

即使我在任何配置设置上运行它,我仍然最终会从 App.config 获得默认值。

标签: c#wpfxaml.net-coremvvm

解决方案


推荐阅读