Azure:部署不属于解决方案的文件

时间:2012-03-23 23:42:49

标签: model-view-controller deployment azure

我在部署我的Web项目(ASP.NET MVC项目)时要部署一个文件,但是我想从解决方案中删除该文件(这是一个非常大的CSS文件,会减慢我的解决方案和如果我错误地打开它会崩溃。)

有没有办法让Azure项目包含此文件,以便将其添加到要部署的包中?

由于

3 个答案:

答案 0 :(得分:5)

一个选项是在项目文件中添加一个将添加它的BeforeBuild ItemGroup。为此,请尝试以下操作:

  1. 右键单击MVC项目并选择“编辑项目文件”
  2. 转到该文件的底部并取消注释< Target Name =“BeforeBuild”>< / Target>
  3. 使用您自己的文件名和路径使目标如下所示:
  4. < Target Name =“BeforeBuild”>

    < ItemGroup>< Content Include =“Content \ Site2.css”/> < /&的ItemGroup GT;

    < /目标>

    4.保存并重新加载项目文件

    现在,当您打包包含MVC项目的Azure项目时,BeforeBuild目标中添加的内容应该在包中。

答案 1 :(得分:1)

另一个可能有用的选项是将此CSS文件从Azure BLOB存储中提供,而不是从Web角色中提供。我怀疑它经常不会改变吗?

通过使用BLOB存储,您可以轻松打开CDN(比Web角色更容易处理)。

然后,您可以从项目母版页中将绝对URL引用包含回此文件。

如果您想真的聪明,您可以在VS项目中包含非缩小内容以便于编辑,然后缩小并上传到BLOB存储作为MSBuild脚本的一部分。

答案 2 :(得分:0)

将启动cmd添加到服务定义中,以便在实例启动时将CSS从blob存储复制到您的配置。这里有一些适合你的权力:

STARTUP.CMD: powershell Set-ExecutionPolicy不受限制 powershell。\ get-file.ps1

GET-file.ps1: $ obj = new-object System.Net.WebClient $ path =“e:\ approot \” $ url =“http://.blob.core.windows.net//” $ obj.DownloadFile($ url,$ path)

这需要几秒钟来复制文件,基本上是以LAN速度。

如果您之前没有完成启动cmd,则链接到MSDN:

http://msdn.microsoft.com/en-us/library/windowsazure/gg456327.aspx