我在客户端项目中有一个T4模板,它使用DLL中编译的代码。此代码使用Microsoft.SqlServer.Smo.dll
。 T4代码中有一个参考我在项目中使用的Microsoft.SqlServer.Smo.dll
。
但是我收到以下错误:
[A] Microsoft.SqlServer.Management.Smo.TableCollection无法强制转换为 [B] Microsoft.SqlServer.Management.Smo.TableCollection。 类型A源自' Microsoft.SqlServer.Smo,Version = 14.100.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'在上下文中'默认'在位置' C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ Extensions \ Microsoft \ SQLCommon \ 140 \ Microsoft.SqlServer.Smo.dll'。 类型B源自' Microsoft.SqlServer.Smo,Version = 14.100.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'在上下文中'LoadFrom'在位置' C:\用户\ B1020 \应用程序数据\本地\组件\ DL3 \ XJJV34RM.TT9 \ X8C5DCTR.DVJ \ 0598d01b \ 00e07435_080cd301 \ Microsoft.SqlServer.Smo.dll'
。
我的T4模板:
<#@ assembly name="E:\Projects\DragonFly\CodeGenerator\bin\Debug\Microsoft.SqlServer.SqlEnum.dll" #>
<#@ assembly name="E:\Projects\DragonFly\CodeGenerator\bin\Debug\Microsoft.SqlServer.Management.Sdk.Sfc.dll" #>
<#@ assembly name="E:\Projects\DragonFly\CodeGenerator\bin\Debug\Microsoft.SqlServer.SqlClrProvider.dll" #>
<#@ assembly name="E:\Projects\DragonFly\CodeGenerator\bin\Debug\Microsoft.SqlServer.ConnectionInfo.dll" #>
<#@ assembly name="E:\Projects\DragonFly\CodeGenerator\bin\Debug\Microsoft.SqlServer.Smo.dll" #>
<#@ assembly name="E:\Projects\DragonFly\CodeGenerator\bin\Debug\CodeGenerator.dll" #>
我试图从类型对象中转换以下内容:
var tables = (Microsoft.SqlServer.Management.Smo.TableCollection)otables;
这是异常发生的地方。