【发布时间】:2009-08-04 17:26:19
【问题描述】:
我对 msbuild 完全是个菜鸟,但我鼓励我根据之前对 question I posted a few days back 的回答来使用它。
无论如何,我正在寻找一些关于 MSBuild 入门的建议……尤其是使用它来自动部署 ASP.NET MVC 应用程序。
非常感谢!
【问题讨论】:
标签: asp.net-mvc msbuild
我对 msbuild 完全是个菜鸟,但我鼓励我根据之前对 question I posted a few days back 的回答来使用它。
无论如何,我正在寻找一些关于 MSBuild 入门的建议……尤其是使用它来自动部署 ASP.NET MVC 应用程序。
非常感谢!
【问题讨论】:
标签: asp.net-mvc msbuild
对于网络内容,您应该使用Web Deployment Projects。它是 Microsoft 的免费插件,将在您的网站或 Web 项目(在您的情况下为 MVC)上运行 aspnet_compiler 和 aspnet_merge 工具。您可以在那里自定义构建以帮助您准备部署。
关于开始使用 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>
我从这样的批处理文件中调用它: (在与 soultion.build 相同的目录中)
C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe Soultion.Build /Target:Build
您将需要 MSBuild 社区任务 dll,只需在 Google 上搜索即可。
【讨论】:
我写了一篇非常详细的博客文章,介绍了在使用 TeamCity 和 Web 部署项目后实现您的目标:
【讨论】:
我在更大的 CI 方案中使用了 MSBuild。我使用 Hudson 来触发我们 MSBuild 来构建程序集但不部署的构建作业。对于部署,我使用 BeyondCompare 将文件“同步”到 IIS 站点文件夹。
【讨论】: