我們有一個項目,其中.js和.css文件被YUI壓縮程序壓縮。一個非常好的工具。我們還使用TFS 2010作爲構建服務器,每晚構建也部署到我們的開發網站。YUI壓縮機和TFS Build
我們遇到的問題是文件YUI生成導致「訪問被拒絕」的問題。這是因爲之前已經生成過這樣的文件,並且它是項目的一部分,使其成爲只讀文件。但是,我們可以將其從項目中刪除,並且它應該創建好。問題在於生成的文件不包含在實際的部署包中。
本地我沒有問題,因爲我有一個預生成事件命令腳本,它刪除了現有的文件。這顯然不能在構建服務器上工作。也許tfs上下文用戶缺乏權限,我不知道。
有沒有人可能有類似的問題?
更新21/11: 這個問題可能有點模糊。爲了簡化,讓剛剛說我想因爲它在本地做這個工作:
IF NOT $(ConfigurationName) == DEBUG DEL "$(ProjectDir)Styles\styles.min.css
IF NOT $(ConfigurationName) == DEBUG DEL "$(ProjectDir)JavaScript\script.min.js
這是在預生成命令事件行規定,在項目屬性 - >生成事件。
腳本在YUI文件生成之前刪除文件,因此沒有要覆蓋的文件。這麼簡單,執行TFS-build的用戶上下文有沒有足夠的修改權限?
SOLUTION:
我們結束了在預生成事件下面的代碼:
attrib -r "$(ProjectDir)Styles\styles.min.css"
attrib -r "$(ProjectDir)JavaScript\script.min.js"
IF NOT $(ConfigurationName) == Debug $(MSBuildBinPath)\msbuild.exe "$(ProjectDir)Config\MSBuild\BuildSettings.xml"
/馬蒂亞斯
我認爲你的第一步是閱讀TFS編譯日誌文件,看看你的預編譯任務是否正在運行。考慮在prebuild事件腳本中添加'attrib -r'以關閉將生成的文件的只讀標誌。 –
我仍然不明白你的問題......你想知道爲什麼預構建步驟不能在TFS構建服務器上運行? –
我想知道如何解決自動生成文件作爲構建的一部分,當文件已經存在(和只讀)的問題。也許我們會採用相同的技術,使用預生成事件將其全部刪除。 – GarethOwen