我正在做一个CodeFluent实体项目,我使用模板生成器生成一个报告,打印一些关于我的模型的统计信息。
正如我所看到的,这个Producer会自动添加两个引用(CodeFluent.Runtime.dll和CodeFluent.Runtime.Web.dll)。 这是一个很棒的功能,但在我的情况下,我不会生成任何C#类,因此目标项目并不真正需要这些引用。
如何禁用此行为?
答案 0 :(得分:3)
模板生成器继承自CodeDomProducer
(生成BOM的那个)。这允许模板生成器有一些有用的方法,如AddToGeneratedFiles
将文件添加到Visual Studio目标项目,或AddCompilationReferences
添加对目标项目的引用。
生产者还继承了一些配置选项,例如Target Project Layout
CodeFluent.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>
快乐的模板:)
答案 1 :(得分:0)
我不确定您是否真的可以删除CodeFluent.Runtime.dll
中的引用,因为它实际上包含模板引擎,请参阅主项目中的http://blog.codefluententities.com/2013/12/26/exploring-the-codefluent-runtime-the-template-engine/ 。
但由于生成的代码可能未引用CodeFluent.Runtime.dll
,因此目标项目中不强制。
我认为如果你不需要它(根据http://www.softfluent.com/documentation/实际上不包含很多东西),删除CodeFluent.Runtime.Web.dll
引用会很有用。