Публикация службы WCF (или веб-приложения ASP.NET) с помощью командной строки - PullRequest
12 голосов
/ 22 мая 2009

Я хотел бы смоделировать пункт меню «Опубликовать ...» из контекстного меню проекта службы WCF (или веб-приложения ASP.NET или ...) в Visual Studio 2008. У меня нет необходимости публиковать его в запуск экземпляра IIS, просто чтобы поместить веб-контент вместе с папкой bin в какой-то локальный каталог. Есть ли способ добавить его в события после сборки или как задачу MSBuild?

Ответы [ 3 ]

9 голосов
/ 25 мая 2009

Вот ответ, благодаря этой ссылке: http://codingcockerel.co.uk/2008/05/18/how-to-publish-a-web-site-with-msbuild/ Итак, я только что изменил файл .csproj веб-приложения и записал его в цель AfterBuild (которая уже была там):

<Target Name="BeforeBuild">
    <Message Text="##############Before build##################" Importance="high"/>
    <RemoveDir Directories="publish"
        ContinueOnError="true"/>
</Target>
<Target Name="AfterBuild">
    <Message Text="##############After build##################$(OutputFolder)" Importance="high"/>
    <MSBuild Projects="$(ProjectName).csproj"
           Targets="ResolveReferences;_CopyWebApplication"
           Properties="WebProjectOutputDir=publish\;OutDir=publish\bin\" />
</Target>
0 голосов
/ 25 мая 2009

HI, Вам следует взглянуть на Проекты веб-развертывания . На самом деле это файлы MSBuild с поддержкой графического интерфейса Visual Studio. Они будут предварительно компилировать ваш сайт. Вы можете расширить их поведение для копирования сгенерированных файлов на ваш веб-сервер.

Сайед Ибрагим Хашими

Моя книга: Внутри Microsoft Build Engine: Использование MSBuild и Team Foundation Build

0 голосов
/ 22 мая 2009

Вы сможете написать команду xcopy, чтобы скопировать нужные файлы в нужное место. У Microsoft есть статья о развертывании xcopy для asp.net .

Если у вас есть правильная команда, вы можете поместить ее в действия после сборки, чтобы она автоматически запускалась после сборки.

Также см. VS Событие пост-сборки для примеров копирования только вывода dll (обратите внимание на использование $ (TargetPath) & $ (TargetDir)).

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