2013-05-21 35 views
2

我使用Package and Publish在Windows Azure雲服務上部署了C#ASP.Net MVC4 Web角色。第一次上傳整個包和網站一直運行良好。當我想要發佈下一組更改時,「發佈」選項將嘗試再次上傳整個軟件包。Azure雲服務 - 僅發佈增量更改

我已經配置了遠程桌面和Web部署,並且還按照文章Publishing a Cloud Service using the Windows Azure Tools中所述的準則啓用了增量更新。

但是,這似乎不起作用,發佈試圖一次又一次上傳整個軟件包。有沒有人遇到這個問題,並提出任何修復?

回答

5

沒有。

目前沒有開箱即用的解決方案來支持增量更改部署。

在使用雲服務時,我強烈建議您做而不是將Web Deploy用於開發/測試以外的其他任何事情。原因在於,一旦實例被回收/修復,通過web部署和任何其他非完整包裝上傳過程所做的所有更改都將被清除。

我一直在研究一個項目,以允許推出部分更改。不幸的是,它只支持當前更新到「bin」文件夾。你可以看看this project here。至少這是一個很好的起點。

+0

是否意味着舊的上傳的軟件包將在實例回收後恢復? – Santosh

+1

我會說「最新的」CSPKG軟件包將用於在需要主機關閉的系統回收/修復/ guesOS更新/ hostOS更新時初始化VM。 – astaykov

2

要快速發佈對開發環境的增量更改(不推薦用於生產),請選中 - Speed Up Azure Deployments with the New Web Deployment Feature

+0

請仔細閱讀視頻說明:'這意味着您可以對已部署的Web應用程序進行更新,只需對同一個正在運行的實例進行更改,這極大地加快了在調試*雲時部署更新的過程*基於Web的應用程序「。 **調試時**!我已經提到過的東西!它不是**推薦用於生產部署! – astaykov

+0

@astaykov - 感謝您的更新。我已經更新了我的評論。請刪除downvote,以便那些想在開發環境中使用它的人會發現它有幫助。 – Santosh

0

在VS2013中,從Web應用程序項目,該項目是由角色引用的上下文菜單中選擇'Deploy'(和「雲服務」項目引用角色(一個或多個)......做將逐步發佈整個服務及其所有角色)。

There 應該是一個'發佈配置文件',它是指* .cloudapp.net平臺上的網站。如果有的話,它會被Visual Studio放到那裏......可能是在第一次部署服務時勾選了「爲所有Web角色啓用Web部署」複選框。

但是,它可能不在那裏,或者是錯的。因爲,例如,Visual Studio是愚蠢的,並且注意到您已經將Web應用程序發佈爲「網站」(在您決定將其作爲「Web角色」併入服務之前),它決定離開現有的單獨進入* .azurewebsites.net。還是因爲該項目只包含在服務定義的XML中的<VirtualApplication />元素的角色中,而Visual Studio卻忽略了創建它?

因此,您必須找到某種方法來強制Visual Studio爲您重新創建正確的配置文件,或者您必須手動複製和編輯已知良好來源的發佈配置文件XML文件(Properties/PublishProfiles目錄在項目根目錄下),或者只是從缺席的文檔中猜測設置。

這些設置將是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <WebPublishMethod>MSDeploy</WebPublishMethod> 
    <MSDeployServiceURL>https://MYAPP.cloudapp.net:8172/MsDeploy.axd</MSDeployServiceURL> 
    <DeployIisAppPath>INSTANCE</DeployIisAppPath> 
    <RemoteSitePhysicalPath /> 
    <AllowUntrustedCertificate>True</AllowUntrustedCertificate> 
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer> 
    <DeployAsIisApp>False</DeployAsIisApp> 
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod> 
    <UserName>MYUSER</UserName> 
    </PropertyGroup> 
</Project> 

其中: MYAPP - 是部署Azure的服務的域名 INSTANCE - 是要更新的實例的名稱(從服務器得到它資源管理器...它是您的服務中「實例」的「名稱」屬性...或者從包含來自Windows Azure管理儀表板的服務的實例列表中獲取它)。 MYUSER - 是最初發布時爲遠程桌面服務設置的用戶的名稱