2012-04-04 93 views
1

我在Azure項目中使用YUI Compressor作爲MsBuild任務。它在本地運行良好,但是當我嘗試發佈它時,我無法將縮小的包插入到我的天青應用程序包中。儘管我已經在我的.csproj文件中嘗試了很多關於修改包的信息,但我無法解決這個問題。我怎樣才能做到這一點?在Azure項目中縮小和包含js和css文件

編輯: 我的項目不是MVC或Webforms應用程序。只需在ASP.NET項目中使用HTML和Javascript即可。我的問題不是縮小。它只是在發佈它時將縮小的外部文件放入Azure包中,但如果有任何其他方法解決了這個天藍色的問題,我可以使用ajaxmin或google關閉來更改YUI Compressor ...並不重要。

回答

1

我不認爲修改服務包支持(你也修改清單)。這就是爲什麼我會從另一個角度來看待它。我假設你有這樣的設置:

  • 解決方案
    • 空ASP.NET項目
      • 的Index.html
      • App.js

現在,編譯後(與MSBuild任務運行),你有這樣的事情:

  • 解決方案
    • 空ASP.NET項目
      • 的Index.html
      • App.js
      • App.min.js(未包含在項目中,但在文件系統上可用)

現在購買只需包括App.min。js文件,它將在打包或發佈應用程序時包含在服務包中。此外,每次編譯時都會運行MSBuild任務,這意味着每次打包應用程序之前都會更新該文件。

+0

是的,我是這樣做的。我也使用tfs。當我簽入文件時,MSBuild任務返回關於鎖定文件的錯誤。這裏的解決方案是:attrib -r「$(TargetDir).. \ View \ js \ bundle.js」:) – iboware 2012-04-05 12:38:23

+0

我假設你可能想檢查文件。通過使用attrib -r VS不會檢測到掛起的更改。我建議使用MSBuild任務先檢出文件。 MSBuild任務:http://msbuildtasks.tigris.org/或MSBuild擴展包:http://msbuildextensionpack.codeplex.com/ – 2012-04-05 13:34:02

+0

是的,它不檢測待處理的更改,這正是我想要的。因爲bundle.js就像佔位符。內容是不必要的。我只是做了一個空文件簽入。 :) 感謝您的意見。我會看看它。 – iboware 2012-04-06 00:26:24

0

由於您尚未詳細說明是WebForms還是MVC,因此我想指出ASP.net MVC4bundling and minification的開箱即用支持。 Scott Gu已經向其解釋了MVC4 preview demo

你也可以在ASP.net MVC3中調用它來工作。一旦達到此目的,您也可以在Azure中實現此目標。

其他文章:

+0

這不是mvc或webforms。只需在一個asp.net項目中使用獨立WCF REST服務的html和javascript,所以我必須使用類似MSBuild的東西。 – iboware 2012-04-04 17:36:05

相關問題