晚会晚了一点,但这是我的主意。
我会考虑第三种可能性,它与修改现有代码库无关。如果您要在输出目录中的某个位置(例如,使用构建后脚本)提交(并复制)二进制文件(实际的游戏.exe和来自编译的关联的.dll),这将起作用。从现在开始,我假设我们正在谈论Visual Studio 2010和XNA Game Studio 4.0(其他版本的过程非常相似,只需要替换一些数字即可)
因此,这个想法是:在项目的.sln解决方案所在的根目录中创建一个脚本(.cmd),其步骤如下:
调用“ Visual Studio 2010命令提示符”:
调用“ C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat” x86
这是为了使我们的脚本能够找到XNA库以及所有必需的工具和二进制文件。
在内容项目(.contentproj)上调用MSBuild任务:
msbuild / property:XNAContentPipelineTargetPlatform = Windows / property:XNAContentPipelineTargetProfile =达到mygame.content / projectfile.contentproj
您可以通过指定不同的平台/配置文件来修改属性。您甚至可以进一步建立一次为更多平台(Windows Phone,Xbox 360或Windows)的内容。该配置文件可以是:Reach或HiDef(http://msdn.microsoft.com/en-us/library/ff604995.aspx)
将输出递归复制到二进制文件+实际游戏存储在存储库中的文件夹中:
xcopy / d / y / i / e bin \ x86 \ Debug \ Content * .. \ game_output \ Content
有关这些标志的详细信息,可以在命令提示符下调用:xcopy /?
。重要的是:/d
,仅复制修改过的文件-如果您有很多资产,则不要一遍又一遍地复制已经存在且未修改的文件,这很有用;/y
自动覆盖现有文件,以便可以使用较新版本进行更新。我用过,xcopy
因为copy
据我所知,普通用户无法递归复制文件夹-可能您正在构造文件夹和子文件夹中的内容。另外,它比普通的copy
(很多不同的标志)更好。
调用,pause
以便脚本将等待用户输入。这对于检查构建是否正常并且没有遇到错误很有用。
现在,修改内容文件的艺术家(或任何人)只需要双击.cmd脚本,便会生成新内容并将其复制到已提交工件的输出目录中,以进行测试。
但是,有一个小问题,您必须退回到David帖子的第一点:如果艺术家想通过添加/删除/移动文件来修改Content项目,则必须打开Visual Studio中的项目(或手动编辑项目文件,我怀疑有人会这样做)。就像我说的那样,这是一个小问题,因为它们可以将新文件提交到存储库中,而您,在完成处理这些文件的代码后,编码器会将它们包括在Content Project中。
关于这个想法,Shawn Hargreaveas从命令行发布了一些有关msbuild和构建内容项目的信息:http : //blogs.msdn.com/b/shawnhar/archive/2006/11/07/build-it-ahead-of-time .aspx他的解决方案是创建一个新文件,但是我认为直接使用已经存在的项目文件更加容易和可维护。
PS:对不起,很久很久以前xD