1

我有一个 python 脚本,它可以在我发布它后对我的 web 项目执行我想要的一切。目前它的工作方式是我在我的网络项目上使用“发布”到我的本地 HD,然后我手动运行我的 .py 并得到我想要的结果(缩小、更改名称、删除垃圾等)。之后,我使用 FTP 将输出上传到我的共享主机,我很好。

现在我正在迁移到 Windows Azure,但我找不到集成 .py 执行的常规方法,因此它将创建一个我可以在我的云上使用的“Azure 包”(甚至是手动方式)。

我真的迷路了,这并不是真正的后期构建,因为它改变了 HTML 中的一些代码,我不希望它改变解决方案的原始 HTML - 只有已发布/打包的 HTML。

4

1 回答 1

2

对于类似的情况,在我的每个 Web 项目的后期构建中,我为每个项目运行来自 Post Build 事件的脚本,然后将所有文件复制到单独的部署文件夹中。(如果有的话,它首先删除那里的所有文件,并进行任何更改,例如清理空目录或无用目录)

第 1 步 - 创建后期构建脚本

我把我的作为一个批处理文件,但你可以使用任何东西。

在这个脚本中,我有类似于

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 项目设置为指向其中包含项目的部署文件夹,而不是直接指向开发文件夹。

服务定义

在 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>

(以防万一您想知道 Endpoint1 是端口 80 常规 http 而 Endpoint2 是端口 443 https)

我现在要做的就是重建我的项目,然后在 Azure 项目上点击发布,一切都完成了。等待 30 分钟后部署和更新 :)

于 2012-04-07T12:53:24.847 回答