Как использовать final {project}.исполняемый.файл конфигурации при создании проекта установки

Я создал консольное приложение (мля.exe) с конкретным приложением.конфиг для dev и prod. Они называются dev_app.config и prod_app.config. Я подключил AfterBuild target в моем файле csproj* который копирует правильный файл конфигурации в каталог bin как blah.exe.config.

Я также создал проект установки для этого консольного приложения, но у меня возникла небольшая проблема. Кажется, что проект установки использует фактический app.config в папке проекта, в отличие до финала!--4--> (находится в папке 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

как я могу заставить проект установки использовать конечный конфигурационный файл, сгенерированный в папке bin, а не фактический ?

Дополнительная Информация:

мое текущее решение включает в себя добавление еще одного AfterBuild команда, которая перезаписывает фактический . Мне не нравится подход, так как он заставляет меня иметь дополнительный файл, который мне не нужен. Кроме того, наличие этого файла уже вызвало у меня некоторое горе, так как я внес изменения в app.config файл, который был перезаписан при строительстве. Вопрос в том, как получить проект установки, используя окончательный файл конфигурации в папке bin и не как управлять конфигурацией или способами создания файла конфигурации.

* адаптировано из развертывание приложения.конфигурации на основе конфигурации сборки

1 ответов


Я использую тот же самый сценарий, но я использую BeforeBuild вместо AfterBuild, и это всегда было хорошо. Я делаю это как в веб-проектах, так и в проектах windows. Ниже приведен код, который я использую.

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

надеюсь, что это помогает.