簡體   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