您可以將預構建事件添加到受影響的項目中。右鍵單擊該項目並選擇構建事件選項卡下的屬性,您可以輸入命令行代碼對受影響的文件進行檢查。 根據您的解決方案爲您的解決方案進行設置,最好卸載該項目,然後直接輸入到.csproj文件,以便您可以爲所有配置啓動預構建事件。
只有你的腳手架文件應該是有針對性的,這種方式當你得到最新和執行建立你的腳手架文件將被檢出,當你來做檢查檢查出來的文件將進行比較,如果沒有chages是製作到腳手架,然後簽入將被忽略,因爲沒有變化。
在您的解決方案與Grails的腳手架
如果右鍵單擊該項目並選擇屬性識別您的項目,然後去生成事件選項卡
你可以在此處輸入腳本以進行構建前或構建,但直接在項目xml中輸入會爲您提供更大的靈活性。
卸載的項目,以便您可以編輯XML項目直接
然後再次右擊並選擇編輯Project.CSProj
向下滾動到項目文件的底部xml,在這裏你可以找到編譯前和編譯後的部分。條件語句應該被設置爲滿足您的需求,在這裏我假定版本只被構建使用,所以只有在配置不等於Release時纔會觸發代碼。
取消對預生成部分,並添加你想火所編譯的代碼之前的代碼。這只是一個示例,您可能需要根據項目的結構來擴展文件的路徑。
<!--To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.-->
<!--Target for prebuild event when the configuration is not Release-->
<Target Name="BeforeBuild" Condition=" '$(Configuration)' != 'Release' " >
<!--Recursively check out everything in the sub folder-->
c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\tf.exe checkout Scaffolding /recursive
<!--Check out a list of individual files-->
c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\tf.exe checkout Scaffoldingfile1.cs Scaffoldingfile2.cs
</Target>
然後,您可以關閉項目文件,並在Visual Studio中重新加載。
你的程序應該成爲
- 獲得從源頭控制
- 最新的代碼重新生成解決方案
- 你的腳手架代碼應該自動檢出
- 使該解決方案的任何變化
- 執行檢查
檢查腳手架文件是否已更新時,應檢入它們,如果沒有發生變化,TFS應忽略文件並撤消檢出。
這聽起來像是一個很好的解決方案。請分享這樣的語法。不知道我完全理解你的建議。 –
非常感謝。我懷疑我會執行它,但似乎是正確的解決方案。看起來我們很快就會轉向Mercurial,這將成爲一個非問題。 –