簡體   English   中英

從多個Web項目構建一個Web部署程序包

[英]Build a single web deploy package from multiple web projects

我有很多Web項目(超過80個)的解決方案。 我正在使用WDP將項目部署到環境中,所以我有一個腳本,該腳本為每個項目構建一個Web部署程序包,然后發布每個程序包。

部署每個軟件包時不會刪除其中已有的內容,並且每個軟件包都可以覆蓋重復的文件。 它可以工作,但部署速度很慢。

我強烈懷疑擁有一個包含所有文件的軟件包會快很多,因為從它的外觀來看,很多時間都花在了建立與服務器的連接上,而不花在部署本身上(大概是因為許多文件未更新)

是否可以通過Visual Studio解決方案中的多個Web項目或使用MSBuild和幾個腳本來構建單個WDP?

謝謝

是否可以通過Visual Studio解決方案中的多個Web項目或使用MSBuild和幾個腳本來構建單個WDP?

由於您具有一個為每個項目構建Web部署程序包的腳本,因此您可以嘗試將那些項目部署到本地文件夾,因此可以將其視為“中間發布文件夾”。 從那里,您可以將所有軟件包的zip任務構造為一個zip文件,然后發布/復制該zip文件以直接發布。

為此,您可以使用以下代碼創建一個.csproj文件:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <OutputType>Library</OutputType>
  </PropertyGroup>

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

  <Target Name="Zip" AfterTargets="Build">
    <CreateItem Include="YourLocalPublishFolder\*.*" >
            <Output ItemName="ZipFiles" TaskParameter="Include"/>
    </CreateItem>
    <Zip ZipFileName="YourZipFile.zip" WorkingDirectory="YourPublishFolder" Files="@(ZipFiles)" />

使用此.csproj文件,所有.zip文件都將壓縮成一個包到publish文件夾中,而無需將每個項目都發布到publish文件夾中。

注意:需要將MSBuildTasks.targets導入到.csproj文件(包括Zip目標)中。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM