2012-04-06 20 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