MSBuild - определяет _публикация веб-сайтов решения - PullRequest
4 голосов
/ 20 января 2011

Я пишу файл целей веб-разработки и хотел бы программно определить имя каталога, который отображается под "_PublishedWebsites".

В настоящее время я должен использовать это:

$ (BinariesRoot) \% (ConfigurationToBuild.FlavorToBuild) \ _ Опубликованные сайты \ MyWebApplication

Есть идеи?

(я не использую это для решений с более чем одним веб-сайтом для публикации)

1 Ответ

11 голосов
/ 26 июля 2011

Новый конвейер веб-публикаций (WPP) в .NET 4.0 имеет метод для управления расположением вывода.

Сначала необходимо подключиться к WPP во время выполнения цели CopyWebApplication.Установите следующие свойства MSBuild либо в командной строке, либо в файле проекта MSBuild:

<PropertyGroup>
    <UseWPP_CopyWebApplication>True</UseWPP_CopyWebApplication>
    <PipelineDependsOnBuild>False</PipelineDependsOnBuild>
</PropertyGroup>

Вариант командной строки:

/p:UseWPP_CopyWebApplication=True /p:PipelineDependsOnBuild=False

Далее создайте новый файл целей MSBuildв том же каталоге, что и ваш проект, и назовите его «ProjectName.wpp.targets», где «ProjectName» - это имя файла вашего проекта, за вычетом расширения.Другими словами, если у вас есть «MyWebsite.csproj», вам нужно создать «MyWebsite.wpp.targets».Я считаю, что это помогает добавить файл целей в проект.Это не обязательно, но это облегчает редактирование.

В новом файле целей вам нужно переопределить свойство WebProjectOutputDir.Делайте это только тогда, когда будет вызвано CopyWebApplication - другими словами, когда «OutDir» перенаправлен в сторону от «OutputPath»:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <WebProjectOutputDir Condition="'$(OutDir)' != '$(OutputPath)'">$(OutDir)Websites\MyCustomFolderName</WebProjectOutputDir>
    </PropertyGroup>
</Project>

Вот и все - вам нужно идти дальше.Вы можете проверить это локально, установив свойство OutDir.Не забудьте про обратную косую черту:

msbuild MyWebsite.csproj /p:OutDir=C:\Development\WebOutputTest\
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...