VS2010的自定义构建

时间:2011-01-05 14:24:22

标签: c# visual-studio msbuild compilation projects-and-solutions

我需要使用外部命令行编译器在我的解决方案中编译一些文件,并将其输出(cs文件)传递给C#编译器的输入,因此它会将它们构建到生成的程序集中。建议实现此任务的方法。

2 个答案:

答案 0 :(得分:1)

您可以使用Project - >设置 - >构建事件 - >预构建事件以生成您的CS文件,然后确保您的CS文件包含在您的项目中,它应该构建得很好。

答案 1 :(得分:1)

之前我遇到过同样的问题。最简单的方法是在项目中包含输出文件,并从预构建事件命令行设置中调用生成器。这种技术存在许多问题,它破坏了对集成源控制的破坏,如果您的生成器动态创建文件,它将无法工作。有一些方法可以解决这个问题,在覆盖它们之前比较生成器中的文件,以便只有更改才会导致覆盖,并将文件连接到具有已知名称文件的单个.cs中。这些都不是有趣或令人满意的恕我直言。

我建议您尽可能使用T4来实现此目的。您没有说外部发电机是否属于您自己,但如果是,它不应该太难转换。与外部链接工具相比,它更清洁,更清晰,更易于维护T4。