asp.net - 如何从 TeamCity 预编译 ASP.NET Web 应用程序?

标签 asp.net deployment continuous-integration compilation teamcity

我有一个关于从 TeamCity 预编译 ASP.NET Web 应用程序项目的问题。这是以下线程的后续问题:

How to deploy after a build with TeamCity?

我已经使用上述线程完成了从单元测试到自动部署的 CI 实现,现在我想通过预编译项目来补充这个过程。该项目相当大,我想避免新部署后响应时间出现任何不必要的延迟。

那么,有没有办法从 TeamCity 做到这一点?喜欢用一些特定的参数调用 MSBuild?

最佳答案

当然,它可以通过自定义 MSBuild 脚本来完成。这是我们用来预编译我们的 ASP.NET MVC 3 网站的程序(并不是它真的因 ASP.NET 版本而异)。

首先,它通过针对解决方案文件运行 MSBuild 来运行常规构建,然后运行此自定义 MSBuild 代码:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>

  <PropertyGroup>
    <WebProject>Web\ChatPast.Web\ChatPast.Web.csproj</WebProject>
    <WebProjectFolder>Web\ChatPast.Web</WebProjectFolder>
    <WebPublishFolder>ChatPastWebPublish</WebPublishFolder>
  </PropertyGroup>

  <ItemGroup>
    <ZipFiles Include="$(teamcity_build_workingDir)\src\ChatPast\$(WebPublishFolder)\**\*.*" />
  </ItemGroup>

  <Target Name="Build">
      <!-- Compilation of all projects -->
      <MSBuild Projects="ChatPast.sln" Properties="Configuration=Release"/>

      <!-- Creating web publish folder. -->
      <RemoveDir Directories="$(WebPublishFolder)"/>
      <MakeDir Directories="$(WebPublishFolder)"/>

      <!-- Running ASP.NET publish -->
      <MSBuild Projects="$(WebProject)"
           Targets="ResolveReferences;_CopyWebApplication"
           Properties="Configuration=Release;WebProjectOutputDir=..\..\$(WebPublishFolder);OutDir=..\..\$(WebPublishFolder)\bin\" />

  </Target>
</Project>

关于asp.net - 如何从 TeamCity 预编译 ASP.NET Web 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5960817/

相关文章:

node.js - 开发环境中的错误 : Cannot find module './abc/xyz.js

c++ - Qt 程序在另一台计算机上执行时崩溃

ios - 通过 Jenkins 上传 iOS .ipa 文件到 testflight

jenkins - 问: How can I save an artifact into Nexus Repository using a groovy pipeline?

javascript - 在 ASP.NET MVC 中 bundle 时 CSS 没有被缩小

asp.net - 部署PrecompiledApp问题

c# - 页面加载后脚本不工作

azure - 使用 Kudu 将 Orchard 部署到 Azure - MSB3884 : Could not find rule set file "AllRules.ruleset"

docker - Gitlab CI : docker not found

c# - pdf 文档中的条形码生成器