我是这个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中运行这些模板。请告诉我。
我很乐意感谢你能分享给我的这个问题的任何解决方案或想法。