如何使用MSBuild部署ASP.NET MVC应用程序

时间:2009-08-04 17:26:20

标签: asp.net-mvc msbuild

我是关于msbuild的完整菜鸟,但我鼓励他根据先前对question I posted a few days back的回答使用它。

无论如何,我正在寻找有关MSBuild入门的一些建议......特别是,使用它来自动部署ASP.NET MVC应用程序。

非常感谢!

4 个答案:

答案 0 :(得分:17)

对于网络内容,您应该使用Web Deployment Projects。它是Microsoft免费添加的,它将在您的网站或Web项目(在您的案例中为MVC)上运行aspnet_compiler和aspnet_merge工具。您可以在那里自定义构建,以帮助您准备部署。

关于MSBuild资源入门

答案 1 :(得分:5)

我直接使用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>

我从这样的批处理文件中调用它: (与soultion.build在同一个目录中)

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

您将需要MSBuild社区任务dll,只需谷歌。

答案 2 :(得分:2)

我写了一篇非常详细的博客文章,介绍了在使用TeamCity和Web部署项目之后的具体内容:

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

答案 3 :(得分:0)

我在更大的CI方案中使用了MSBuild。我使用Hudson触发构建作业,我们MSBuild构建程序集,但不部署。对于部署,我使用BeyondCompare将文件“同步”到IIS站点文件夹。