使用Templace生产者时不要自动添加参考

时间:2014-01-17 15:28:27

标签: codefluent

我正在做一个CodeFluent实体项目,我使用模板生成器生成一个报告,打印一些关于我的模型的统计信息。

正如我所看到的,这个Producer会自动添加两个引用(CodeFluent.Runtime.dll和CodeFluent.Runtime.Web.dll)。 这是一个很棒的功能,但在我的情况下,我不会生成任何C#类,因此目标项目并不真正需要这些引用。

如何禁用此行为?

2 个答案:

答案 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引用会很有用。