繁体   English   中英

使用.targets文件为MSBuild预编译要部署的站点

[英]Precompiling a site for deployment using .targets file for MSBuild

我有一个ASP.NET Web项目(.Net 4.5,Visual Studio 2015)。

该解决方案使用XAML构建,而不是较新的Web构建。 一些内部版本使用文件副本将应用程序直接部署到IIS服务器。

我们不使用Visual Studio中的“发布”操作来发布项目。

在ASP.NET项目的.csproj文件中,添加了以下import语句以添加其他.targets文件:

<Import Project="CSADeploy.targets" Condition="Exists('CSADeploy.targets')" />
<Target Name="AdditionalTargets">
  <!-- ... -->
</Target>

在该目标文件中,文件被复制。

这是.targets文件的简短摘录:

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

  <Target Name="BeforeBuild"> 
  </Target>
  <Target Name="AfterBuild">

我希望预先编译部署到服务器的代码以进行部署,即“仅部署”或“具有可更新UI的部署”都可以。 我知道Publish操作中有一个复选框可以预编译,但我不能使用它。 我必须将现有XAML构建与目标文件以及.csproj文件中的指令一起使用。

我也知道,一旦文件被部署,我就可以在服务器上使用Aspnet_compiler.exe工具。 但是我必须在复制文件之前执行此操作,因为我无权访问此服务器,并且希望防止在构建过程中添加手动操作。

如何预编译ASP.NET页面以进行部署,以便在我的方案中正确部署它们?

您可以为您的项目创建一个.pubxml文件,然后签入TFS,在.pubxml文件中,将precompileBeforePublish设置为True。

  <PropertyGroup>
    ......
    <PrecompileBeforePublish>True</PrecompileBeforePublish>
  </PropertyGroup>

在xaml构建定义中,添加以下msbuild参数:

 /p:deployOnBuild=true /p:publishProfile=***.pubxml

然后在TFS xaml构建中,它将在部署之前进行预编译。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM