冲突类型 - 虽然它们是相同的(T4 - Microsoft.SqlServer.Smo.dll)

时间:2017-10-12 15:57:25

标签: c# .net t4 smo

我在客户端项目中有一个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;

这是异常发生的地方。

0 个答案:

没有答案