静态代码生成模块,通过在相关工程项目的生成事件中执行并读取相关程序集元数据信息,匹配 AutoCSer 中的代码模板视图,在项目中生成需求的源代码文件。
由于静态代码生成模块需要通过动态加载程序集的方式访问目标程序集的元数据信息,建议目标工程项目的生成目标平台配置为 Any CPU,否则可能造成程序集访问错误而无法生成需求的源代码。
如果您在使用静态代码生成模块的时候出现“试图加载格式不正确的程序”类似错误,请将问题反馈给我。

1. 在 VS 的 解决方案资源管理器 中右键单击 目标工程项目,在弹出的菜单中点击底部的 属性(R) Alt+Enter 打开项目属性编辑器。

2. 在项目属性编辑器左侧选择 生成事件 选项卡,打开项目的生成事件编辑器。

3. 在 后期生成事件命令行 输入框中输入如下命令。

"PATH\Packet\FRAMEWORK\AutoCSer.CodeGenerator.exe" "$(ProjectName) " "$(ProjectDir) " "$(TargetPath) " "$(TargetName)"
PATH 请修改为 AutoCSer 解压的真实路径,FRAMEWORK 请修改为目标项目匹配的框架路径。

4. 编译目标项目,正常情况下会在工程项目文件夹下生成一个源代码文件 {项目名称}.AutoCSer.cs,将这个 cs 文件添加到项目中就可以使用了。

如果你不想在每次编译工程项目的时候都调用静态代码生成模块,可以忽略上面 4 个步骤,使用批处理或者其它方式手动调用 AutoCSer.CodeGenerator.exe

注意:对于生成了相关静态源代码的各种元数据(包括类型、字段、属性、函数等)不能随便修改或者删除,因为生成的代码可能对它的定义存在依赖。
一般的正确的处理方法是,先将相关代码生成的 Attribute 申明配置删除或者注释,重新编译项目生成新的源代码,没有了相关依赖以后再进行修改或者删除。
另外生成的静态源代码会使用预定义符号 NoAutoCSer,你可以在目标项目中定义预定义符号 NoAutoCSer 禁用生成的源代码以及依赖它的其它代码,等重新编译项目生成新的源代码后再删除预定义符号 NoAutoCSer
如果某些时候你觉得前面的方法过于麻烦,你也可以直接修改或者删除代码,等到 IDE 报错的时候去注释相关的依赖代码,因为通过编译以后会自动生成新的代码。