2012-04-06 40 views
1

我有一個python腳本,在我發佈它之後,可以完成我所需的所有工作。 目前它的工作方式是我使用我的web項目上的「發佈」到我的本地HD, 然後我手動運行我的.py,並得到我想要的結果(縮小,更改名稱,刪除垃圾等)。之後,我使用FTP將輸出上傳到我的共享主機,我很好。在Azure包中執行.py MSBuild進程

現在我移動到Windows Azure和我找不到整合的.py執行,以便它會創建一個「天青大禮包」我可以在我的雲使用(甚至是手動的方式做一個正常的方式它)。

我真的失去了,這不是一個真正生成後,因爲它改變了HTML一些代碼,我不希望它改變溶液的原始HTML - 只有發佈/封裝之一。

回答

2

我對類似的情況做些什麼,每個我的web項目的生成後,我從運行後腳本生成的事件對每一個項目,即然後將所有文件複製到一個單獨的部署文件夾。 (它刪除所有文件那裏第一次,如果有任何作了任何改變,例如清理空或無用的目錄)

第一步 - 建立一個後生成腳本

我做了我的一個批處理文件,但你可以使用任何東西。

在這個腳本我有類似

RMDIR "C:\Visual Studio 2010\Projects\Promotion\Deployment\FacebookApp" /S /Q 
xcopy "C:\Visual Studio 2010\Projects\Promotion\FacebookApp" "C:\Visual Studio 2010\Projects\Promotion\Deployment\FacebookApp\" /s /e 
RMDIR "C:\Visual Studio 2010\Projects\Promotion\Deployment\FacebookApp\obj" /S /Q 
RMDIR "C:\Visual Studio 2010\Projects\Promotion\Deployment\FacebookApp\Styles" /S /Q 

線將腳本添加到您的生成後事件

PostBuildEvent

第2步 - 更改Azure項目指向新的文件夾

然後,我將Azure項目設置爲指向項目i的部署文件夾而不是直接面向發展中國家。

ServiceDefinition

在這裏的ServiceDefinition.csdef中是我的榜樣

<Site name="FacebookApp" physicalDirectory="..\Deployment\FacebookApp"> 
    <Bindings> 
     <Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="sub.domain.com" /> 
     <Binding name="Endpoint2" endpointName="Endpoint2" hostHeader="sub.domain.com" /> 
    </Bindings> 
</Site> 

(萬一你想知道端點1端口是80場常規HTTP和端點2是端口443 HTTPS)

所有我現在要做的就是重建我的項目,然後在Azure項目上點擊發布,並完成所有工作。 30分鐘的等待它的部署和更新:)

+0

亞當我將不勝感激,如果你能附加導軌(一些照片)給你寫的,沒有違法,但我沒有得到任何東西之後。 – shaylevi2 2012-04-07 16:14:45

+0

已更新答案 – 2012-04-08 02:56:25

+0

我建議使用['AfterBuild'](http://stackoverflow.com/q/6128567/147211)目標而不是非託管的構建事件 – KMoraz 2012-04-08 16:09:04