2012-03-23 108 views
1

我有一个文件,我想在我的web项目(ASP.NET MVC项目)部署时进行部署,但是我想从解决方案中删除该文件(这是一个非常大的CSS文件,如果我错误地打开它,会减慢我的解决方案并导致VS崩溃)。Azure:部署不属于解决方案的文件

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

感谢

+0

我会想象事实,你的崩溃IDE中,也许你应该重新考虑的办法 – asawyer 2012-03-23 23:47:03

+1

的问题是,VS有很长的行一个非常坏的处理,并且由于CSS是我只是用来部署到网站的缩小CSS,我不认为我必须重新考虑这个方法没有真正的崩溃,只需要5分钟就可以打开,只要我尝试错误地打开它。 – willvv 2012-03-24 00:32:03

回答

5

一种选择是在项目文件,将其添加添加BeforeBuild的ItemGroup。要做到这一点,请尝试以下操作:

  1. 右键单击MVC项目并选择编辑项目文件
  2. 实现这一文件的底部去,并取消对<目标名称=“BeforeBuild” > < /目标>
  3. 让这一目标看起来如下,使用自己的文件名和路径:

<目标名称=“BeforeBuild” >

<的ItemGroup > <内容主要包括= “内容\ Site2.css”/ > < /的ItemGroup >

< /目标>

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

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

+0

我试过了,文件没有包含在包里。 – willvv 2012-03-26 18:56:20

+0

您使用什么路径进行包含?当我玩这个游戏时,我发现如果它错了,就没有错误 - 只是不包括它。否则,您可以在目标中添加消息任务(http://msdn.microsoft.com/zh-cn/library/6yy0yx8d.aspx)以输出内容,以便验证它是否至少运行目标。 – 2012-03-26 23:06:07

1

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

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

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

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

+0

实际上,文件现在正在频繁更改,而我现在没有使用BLOB存储(一旦我们生活,我会考虑它)。我想我现在只会坚持在解决方案中使用CSS。 – willvv 2012-03-26 18:57:30

0

将一个启动cmd添加到您的服务定义中,以便在实例启动时将CSS从blob存储复制到您的approot。下面是一些PowerShell的你:

STARTUP.CMD: 的PowerShell设置ExecutionPolicy不受限制 PowerShell的\得到-file.ps1

得到-file.ps1: $ OBJ =新的对象System.Net。 WebClient $ path =“e:\ approot \” $ url =“http://.blob.core.windows。网//” $ obj.DownloadFile($网址,$ PATH)

这需要几秒钟局域网的速度复制文件,基本上是这样。

并为MSDN的链接,如果你还没有做之前启动CMD:

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

+0

但是这意味着我必须添加某种将CSS文件部署到BLOB存储的任务,这会使事情变得更加复杂。我现在没有使用BLOB存储,我也不想开始使用它。 – willvv 2012-03-26 18:55:45