我正在做一个 CodeFluent Entities 项目,我使用模板生成器生成一个报告,打印一些关于我的模型的统计信息。
正如我所看到的,这个 Producer 自动添加了两个引用(CodeFluent.Runtime.dll 和 CodeFluent.Runtime.Web.dll)。这是一个很棒的功能,但就我而言,我不生成任何 C# 类,因此目标项目并不真正需要这些引用。
如何禁用此行为?
我正在做一个 CodeFluent Entities 项目,我使用模板生成器生成一个报告,打印一些关于我的模型的统计信息。
正如我所看到的,这个 Producer 自动添加了两个引用(CodeFluent.Runtime.dll 和 CodeFluent.Runtime.Web.dll)。这是一个很棒的功能,但就我而言,我不生成任何 C# 类,因此目标项目并不真正需要这些引用。
如何禁用此行为?
模板生产者继承自CodeDomProducer
(生成 BOM 的那个)。这允许模板生产者有一些有用的方法,比如AddToGeneratedFiles
将文件添加到 Visual Studio 目标项目,或者AddCompilationReferences
添加对目标项目的引用。
生产者还继承了一些配置选项Target Project Layout
,例如 typeCodeFluent.Model.Design.TargetProjectLayoutOptions
[Flags]
public enum TargetProjectLayoutOptions
{
None = 0x0,
[Description("Update All")]
Update = UpdateReferences | UpdateItems,
[Description("Update References")]
UpdateReferences = 0x1,
[Description("Update Items")]
UpdateItems = 0x2,
[Description("Do Not Remove Existing Items")]
DontRemove = 0x4,
Default = Update,
}
如您所见,这允许您不更新项目引用。因此,要回答您的问题,您的生产者配置应如下所示
<cf:producer name="Template" typeName="CodeFluent.Producers.CodeDom.TemplateProducer, CodeFluent.Producers.CodeDom">
<cf:configuration cfx:targetProjectLayout="UpdateItems" [other options] />
</cf:producer>
快乐的模板:)
我不确定您是否真的可以从中删除引用CodeFluent.Runtime.dll
,因为它实际上包含模板引擎,请参阅http://blog.codefluententities.com/2013/12/26/exploring-the-codefluent-runtime-the-template-engine / 在主项目中。
但是由于生成的代码可能不会引用它,因此在目标项目中CodeFluent.Runtime.dll
它不是强制性的。
我同意,CodeFluent.Runtime.Web.dll
如果您不需要它,删除参考可能会很有用(根据http://www.softfluent.com/documentation/ ,它实际上不包含很多东西)。