T4模板正在某些PC上生成额外的新行

Tho*_*927 22 c# t4

在为实体框架使用T4类时,有几个开发人员为每个生成的行生成一个额外的新行.我想知道这是否是某种需要更改的设置,以便他们的T4生成的文件看起来像其他开发人员生成的文件.作为我所谈论的一个例子:(删除了特定的名称,但你应该能够看到从同一个*.tt文件生成的新行数量的差异.)

(更新:问题也出现在其他T4模板中,而不仅仅是EF.两台PC都使用TextTemplatingFileGenerator作为T4自定义工具.)

我电脑的T4输出:

    public virtual DbSet<GeneratedObject1> GeneratedObject1 { get; set; }
    public virtual DbSet<GeneratedObject2> GeneratedObject2 { get; set; }

    public virtual int SomeMethod1(Nullable<int> inParameter)
    {
        var localParameter = inParameter.HasValue ?
            new ObjectParameter("SomePropertyName", inParameter) :
            new ObjectParameter("SomePropertyName", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("SomeMethod1", localParameter);
    }

    public virtual int SomeMethod2(Nullable<int> inParameter)
    {
        var localParameter = inParameter.HasValue ?
            new ObjectParameter("SomePropertyName", inParameter) :
            new ObjectParameter("SomePropertyName", typeof(int));

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("SomeMethod2", localParameter);
    }
Run Code Online (Sandbox Code Playgroud)

PC的T4输出:

public virtual DbSet<GeneratedObject1> GeneratedObject1 { get; set; }

public virtual DbSet<GeneratedObject2> GeneratedObject2 { get; set; }


public virtual int SomeMethod1(Nullable<int> inParameter)
{

    var localParameter = inParameter.HasValue ?
        new ObjectParameter("SomePropertyName", inParameter) :
        new ObjectParameter("SomePropertyName", typeof(int));


    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("SomeMethod1", localParameter);
}


public virtual int SomeMethod2(Nullable<int> inParameter)
{

    var localParameter = inParameter.HasValue ?
        new ObjectParameter("SomePropertyName", inParameter) :
        new ObjectParameter("SomePropertyName", typeof(int));


    return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("SomeMethod2", localParameter);
}
Run Code Online (Sandbox Code Playgroud)

编辑:

(与文件中的文本大致相同.)我的文件: 我的档案

他们的档案: 他们的档案

Tho*_*927 26

什么@ ralf.w.得到的是这个问题的解决方案..tt问题计算机上的文件中的行结尾是LF,这会导致在转换工具运行时生成额外的行结尾.正确的行结尾应该是CR LF.一旦我们更改了.tt文件中的行结尾,就会正确生成输出文件.我还将Git中的行结束设置更改为按原样结帐,按原样提交.此问题包含有关行结束设置的含义以及可以更改的位置的一些信息.

记事本++使用的问题转换.tt文件CR LF(我们没有那么多.)转到Edit→交通EOL Conversion→交通Windows (CR LF)