MSBuild:在编译之前嵌入文件的任务

时间:2011-01-28 03:31:23

标签: msbuild

我有以下需要:

我将不得不创建一个生成xml文件的MSBuild任务,然后我需要将其作为资源嵌入到正在构建的项目之一中。如何更改我的MSBuild项目以实现这一目标?我可以使用内置任务来嵌入文件,还是需要创建一个?如果是后者,任何方向都会很棒。

提前致谢!

更新:根据给出的建议,我最终将一个空的xml文件作为资源添加到项目中,创建一个简单的MSBuild自定义任务(http://bartdesmet.net/blogs/bart/archive/2008 /02/15/the-custom-msbuild-task-cookbook.aspx)在我需要时将内容写入该文件,并将该任务作为“BeforeBuild”目标运行。奇迹般有效。请注意,我必须“从源代码控制中排除文件”,因此每次构建项目时都不会检出它,并且我还在任务中添加了一些代码以确保文件不是只读(http://www.del337ed.com/blog/index.php/2007/09/05/clearing-the-read-only-flag-on-a-file-in-c/).

2 个答案:

答案 0 :(得分:0)

您可以在.csproj / .vbproj文件目标中使用builtin(不要忘记取消注释)和call在BeforeTarget中需要MSBuild任务。在该项目中,将该资源添加为嵌入式。就这样。

答案 1 :(得分:0)

如果您不需要从头创建整个Xml文件并且可以将stubb文件添加到项目中,则可以使用XmlPoke Task在BeforeBuild目标中更新此文件(请参阅Sergios答案)。 / p>