[英]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.