您可以将预构建事件添加到受影响的项目中。右键单击该项目并选择构建事件选项卡下的属性,您可以输入命令行代码对受影响的文件进行检查。 根据您的解决方案为您的解决方案进行设置,最好卸载该项目,然后直接输入到.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,这将成为一个非问题。 –