如何在VS2015中成功运行现有的T4模板?

时间:2016-02-18 03:52:30

标签: linq-to-sql visual-studio-2015 t4 t4-toolbox

我是这个T4模板的新手。 我所知道的是这些模板将从LINQ to SQL类模型(.dbml文件)生成实体类 我们有这个在Visual Studio 2010上运行的系统。

当我们迁移到Visual Studio 2015时,问题就开始了。 我想在实体/表中添加新列。 当我运行自定义工具时,会弹出此错误

  

名为' T4Toolbox.XsdProcessor'的处理器无法找到   指令' xsd'。转换不会运行。该   抛出以下异常:       System.IO.FileNotFoundException:无法解析指令处理器T4Toolbox.XsdProcessor的类型。

以下是模板。

<#@ template hostspecific="True" debug="true" #>
<#@ xsd processor="T4Toolbox.XsdProcessor" file="%VS100COMNTOOLS%\..\..\Xml\Schemas\DbmlSchema.xsd" #>
<#@ output extension="log" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ include file="T4Toolbox.tt" #>
<#

@ include file="..\..\..\Framework\Templates\LinqToSql.tt" #>
// <copyright file="Script1.tt" company="">
//  Copyright © . All Rights Reserved.
// </copyright>

// Generate entity classes from a LINQ to SQL class model (.dbml file)
NXpertGenerator generator = new NXpertGenerator();
generator.DbmlFile = "..\\..\\NXpert.Accounting.DataAccess\\Accounting.dbml";
generator.ConnectionStringKey = "AccountingDB2";
generator.DbmlNamespace = "NXpert.Accounting.DataAccess";
generator.UsingStatements = new List<string>{"NXpert.Core", "NXpert.Accounting", "NXpert.Accounting.DataAccess", "System.Data.Linq"};

generator.ClassMappings = new List<ObjectDescriptor>{   
    new ObjectDescriptor{
        Name = "BalanceSheet",
        NamePlural = "BalanceSheets",
        EntityName = "BalanceSheetEntity",
        Properties = new List<PropertyDescriptor>{
            new PropertyDescriptor{ Name = "Status", ConvertType = "CommonStatus" },
            new PropertyDescriptor{ Name = "CreatedDate", ConvertType = "DateTime" },
            new PropertyDescriptor{ Name = "UpdatedDate", ConvertType = "DateTime" }
        }
        }
};

generator.Run();

#>

我确实尝试删除该行

<#@ xsd processor="T4Toolbox.XsdProcessor" file="%VS100COMNTOOLS%\..\..\Xml\Schemas\DbmlSchema.xsd" #>

此错误显示

  

编译转换:类型或命名空间名称&#39;关联&#39;   无法找到(您是否错过了使用指令或程序集   参考?)       编译转换:类型或命名空间名称&#39;数据库&#39;无法找到(您是否错过了使用指令或程序集   引用?)

有点这种错误告诉我它只是一个忘记添加的命名空间。 但是,此模板再次在Visual Studio 2010中完美运行。

必须要完成一些设置/步骤才能在VS2015中运行这些模板。请告诉我。

我很乐意感谢你能分享给我的这个问题的任何解决方案或想法。

0 个答案:

没有答案