2

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

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

如何禁用此行为?

4

2 回答 2

3

模板生产者继承自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>

快乐的模板:)

于 2014-01-20T09:56:18.293 回答
0

我不确定您是否真的可以从中删除引用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/ ,它实际上不包含很多东西)。

于 2014-01-17T23:24:55.257 回答