Как использовать окончательный файл {project} .exe.config при создании проекта установки - PullRequest
7 голосов
/ 18 февраля 2011

Я создал консольное приложение (blah.exe) с конкретными app.config для dev и prod.Они называются dev_app.config и prod_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

Как заставить * 1015 форсировать* настроить проект для использования окончательного файла конфигурации, созданного в папке bin, а не фактического app.config файла?

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

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

* Адаптировано с Развертывание app.config на основе конфигурации сборки

1 Ответ

3 голосов
/ 19 февраля 2011

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

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

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...