Настройка свойств web.config во время сборки (не через публикацию) - PullRequest
6 голосов
/ 06 мая 2011

Я пытаюсь развернуть приложение с помощью проекта веб-установки. Проблема, с которой я сталкиваюсь, заключается в том, что файл web.config никогда не преобразуется. Согласно этому посту трансформация происходит только во время публикации. Как получить свойства web.config для корректного обновления, если сборка проекта установки в свою очередь вызывает команду сборки других сборок?

Ответы [ 2 ]

5 голосов
/ 06 мая 2011

Я исправил это, добавив фиктивный файл web.Template.config, как предложил Андрей К в этой записи , а затем вызвал TransformXml во время моего события BeforeBuild следующим образом:

<Target Name="BeforeBuild">
<TransformXml Source="$(WebFolderName)Web.Template.config"
              Transform="$(WebFolderName)Web.$(Configuration).config"
              Destination="$(WebFolderName)Web.config" />
</Target>
2 голосов
/ 06 мая 2011

Самый простой вариант - установить утилиту командной строки xslt и запустить ее в действии после сборки вашего проекта.Вы также можете использовать одну из многих задач MSBuild XSLT и добавить ее в файл .csproj.(Это всего лишь файл сценария MSBuild; там внизу уже есть комментарии, объясняющие, как настроить сборку.)

Вы также можете выполнить любой из этих шагов в действии перед сборкой вашего проекта установки,вместо действия пост-сборки вашего веб-приложения.Если вы также используете мастер публикации, этот второй вариант может работать лучше, поскольку он не будет мешать обычному преобразованию XSLT, выполняемому в издателе.

Утилита командной строки Microsoft XSLT: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2fb55371-c94e-4373-b0e9-db4816552e41&displaylang=en

Пример MSBuild XSLT Task: http://www.arlt.eu/blog/2007/10/01/msbuild-xslt-task/

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