Как использовать MSBuild для развертывания ASP.NET приложение MVC [закрыто]

Я полный noob в отношении msbuild, но мне рекомендуется использовать его на основе предыдущего ответа на вопрос, который я опубликовал несколько дней назад.

во всяком случае, я ищу некоторые рекомендации по началу работы с MSBuild ... и в частности, использование его для автоматизации развертывания ASP.NET приложения MVC.

спасибо!

4 ответов


для веб-материалов вы должны использовать Веб-Развертывания Проектов. Это бесплатное дополнение от Microsoft, которое будет запускать инструмент aspnet_compiler и aspnet_merge на вашем веб-сайте или веб-проекте (MVC в вашем случае). Вы можете настроить сборку там, чтобы помочь вам подготовиться к развертыванию.

о начале работы с ресурсами MSBuild


Я использую msbuild напрямую, пропуская nAnt. Вы можете вызвать его с файлом сборки в качестве свойства и указать цель из командной строки. Вот образец soultion.файл build:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
     <!-- Import the MSBuild Tasks -->
  <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <ClassLibraryOutputDirectory>bin$(Configuration)</ClassLibraryOutputDirectory>
    <ProjectDir>.\</ProjectDir >
    <ProjectTestDir>DALTests\</ProjectTestDir >
    <ProjectFile>$(ProjectDir)SSN.sln</ProjectFile >
    <TestProjectFile>$(ProjectTestDir)DALTests.csproj</TestProjectFile >
  </PropertyGroup>

  <!-- Build projects by calling the Project files generated by VS -->
  <Target Name="Build">
    <MSBuild Projects="$(ProjectFile)" />
    <MSBuild Projects="$(TestProjectFile)" />
  </Target>

  <!-- Run Unit tests -->
  <Target Name="Test" DependsOnTargets="Build">
    <CreateItem Include="DALTests\Bin\Debug\DALTests.exe">
      <Output TaskParameter="Include" ItemName="DALTests" />
    </CreateItem>
    <NUnit Assemblies="@(DALTests)" ToolPath="D:\Program Files\NUnit 2.4.5\bin" ContinueOnError="false" OutputXmlFile="SoultionTestResults.xml" />
  </Target>
</Project>

Я называю это из пакетного файла, как это: (в том же dir, что и soultion.build)

C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe Soultion.Build /Target:Build

вам понадобится dll MSBuild Community Tasks, просто google.


Я написал довольно подробный пост в блоге о достижении именно того, что вы после использования проектов TeamCity и веб-развертывания:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn


Я использовал MSBuild в большей схеме CI. Я использую Hudson для запуска заданий сборки, которые мы MSBuild для сборки сборок, но не для развертывания. Для развертывания я использую BeyondCompare для "синхронизации" файлов с папкой сайта IIS.