创建安装项目时如何使用最终的{project} .exe.config文件

Ahm*_*mad 7 c# installer setup-project visual-studio-2010

我已经为dev和prod创建了一个具有特定app.config的控制台应用程序(blah.exe).这些是命名dev_app.configprod_app.config.我已经AfterBuild在我的csproj文件*中连接了一个目标,它将正确的配置文件复制到bin目录中blah.exe.config.

我还为这个控制台应用程序创建了一个安装项目,但我遇到了一个小问题.似乎安装项目使用app.config项目目录中的实际而不是最终blah.exe.config(位于bin目录中).

|--Bin
|  |--Debug
|     |--Blah.exe.config <--- I want the setup project to use this file
|--app.config <--- Setup project uses this file at the moment
|--dev_app.config
|--prod_app.config
Run Code Online (Sandbox Code Playgroud)

如何强制安装项目使用bin文件夹中生成的最终配置文件而不是实际app.config文件?

附加信息:

我当前的解决方案涉及添加另一个AfterBuild覆盖实际app.config文件的命令.我不喜欢接近,因为它迫使我有一个我不需要的额外文件.此外,由于我对app.config构建时被覆盖的文件进行了更改,因此拥有此文件已经让我感到悲痛.问题是如何让安装项目使用bin文件夹中的最终配置文件,而不是如何管理配置或创建配置文件的方法.

*改编自基于构建配置部署app.config

小智 3

我一直在使用完全相同的场景,但我使用 BeforeBuild 而不是 AfterBuild,而且一直都很好。我一直在 web 和 windows 项目上这样做。下面是我正在使用的代码。

  <Target Name="BeforeBuild">
    <ItemGroup>
      <ConfigSourceFiles Include="Web.$(Configuration).config" />
      <ConfigDestinationFiles Include="Web.config" />
    </ItemGroup>
    <Copy SourceFiles="@(ConfigSourceFiles)" DestinationFiles="@(ConfigDestinationFiles)" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。