1

这个问题很相似,但唯一的答案似乎并不能满足我的需求)。

我正在考虑在 C#中使用Thrift ,并且正在考虑构建过程将如何工作。Visual Studio 2008 中的 C# 项目是否支持生成 C# 类的自定义生成操作?

我找到了“自定义工具”选项,但我不确定它是否是我正在寻找的......它只允许设计时使用(不是构建过程不可或缺的,而是右键单击“运行自定义工具” )。

更新

Fionn 建议的预构建事件确实不是最理想的,因为它们没有考虑依赖关系并延长构建过程。此外,它们是从一个中心位置而不是每个文件进行管理的。

4

3 回答 3

2

如果您只是将代码生成放在预构建事件中会怎样。

它们位于 Visual Studio 中项目属性的“构建事件”部分。

它们还支持一些宏,如果您使用“Edit Pre-build ...”按钮,您会看到这些宏。

于 2009-04-12T18:14:46.817 回答
1

正如 Fionn 所提到的,最简单和最安全的选择是在“预构建事件”中包含生成。优点:代码总是正确的,缺点:慢,因为这意味着在每次编译时,您重新生成源代码,然后重建所有依赖项,因为生成的代码已更改。

另一种选择是手动重新生成代码文件,如果您有构建机器/持续集成,则重新构建每个构建的代码文件。优点:如果更改很少,则构建速度更快 缺点:生成的代码过时,以及为了解决问题而浪费数小时的调试时间。

阅读 C# 项目帮助,您似乎需要一个插件来提供您想要的自定义工具操作。但在 C++ 项目中,您可以定义自己的自定义步骤MS-Help。因此,您可以开发一个 VisualStudio 插件(或找到一个)或将一个 C++ 项目添加到您的解决方案中,并向该项目添加一个自定义构建步骤,然后将输出包含在您的普通 C# 项目中。

' visual studio custom tool code gen '的第一个谷歌有一个如何编写你自己的自定义工具,这将是一个很好的起点。

于 2009-04-15T04:05:28.970 回答
0

MS Build是高度可配置的。Visual Studio 本身的扩展性也很强。您可以使用CodeDOM来发出类。根据您想在自定义 VS 和构建过程中投入多少时间,几乎没有什么是您不能做的。

于 2009-04-12T18:21:57.720 回答