Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 使用t4的Firebird数据访问_.net_C# 4.0_64 Bit_Firebird_T4 - Fatal编程技术网

.net 使用t4的Firebird数据访问

.net 使用t4的Firebird数据访问,.net,c#-4.0,64-bit,firebird,t4,.net,C# 4.0,64 Bit,Firebird,T4,我正在为Firebird数据库(嵌入式)使用t4模板制作数据访问层 我在64位系统上工作。编译/调试选项AnyCPU(Windows 7 64位)Visual studio 2010 我在C#环境中编写代码并对其进行测试,它与firebird.client、fembed一起工作良好 但是,当我将相同的代码放入t4模板并执行时,我会得到以下错误消息 大宗报价 运行转换时出现错误1:System.BadImageFormatException:异常 试图加载格式不正确的程序。 (HRESULT的例外

我正在为Firebird数据库(嵌入式)使用t4模板制作数据访问层

我在64位系统上工作。编译/调试选项AnyCPU(Windows 7 64位)Visual studio 2010

我在C#环境中编写代码并对其进行测试,它与firebird.client、fembed一起工作良好

但是,当我将相同的代码放入t4模板并执行时,我会得到以下错误消息

大宗报价 运行转换时出现错误1:System.BadImageFormatException:异常 试图加载格式不正确的程序。 (HRESULT的例外:0x8007000B)位于 FB_965910463_Class.isc_attach_数据库(IntPtr[]statusVector,Int16 dbNameLength,字节[]dbName,Int32&dbHandle,Int16 parmBufferLength, 字节[]parmBuffer)位于 FB_965910463_Class.IFbClient.isc_attach_数据库(IntPtr[] statusVector、Int16 dbNameLength、字节[]dbName、Int32和dbHandle、, Int16参数长度,字节[]参数)在 FirebirdSql.Data.Client.Native.FesDatabase.Attach(DatabaseParameterBuffer dpb、字符串数据源、Int32端口、字符串数据库)位于 FirebirdSql.Data.FirebirdClient.FbConnectionInternal.Connect()位于 FirebirdSql.Data.FirebirdClient.FbConnectionPool.Create()位于 FirebirdSql.Data.FirebirdClient.FbConnectionPool.CheckOut()位于 FirebirdSql.Data.FirebirdClient.FbConnection.Open()位于 System.Data.Common.DbDataAdapter.FillInternal(数据集, DataTable[]datatables,Int32 startRecord,Int32 maxRecords,字符串 srcTable、IDbCommand、CommandBehavior)位于 System.Data.Common.DbDataAdapter.Fill(DataTable[]dataTables,Int32 startRecord、Int32 maxRecords、IDbCommand、CommandBehavior 行为)位于System.Data.Common.DbDataAdapter.Fill(DataTable 数据表)在 Microsoft.VisualStudio.TextTemplating764D7C202C1B21D2B3446E16766F889E.GeneratedTextTransformation.LoadTables() 在里面 c:\Users\waqarhabib\Desktop\FireBirdORM\FireBirdORM\FireBirdGen.t包括:行 132 at Microsoft.VisualStudio.TextTemplating764D7C202C1B21D2B3446E16766F889E.GeneratedTextTransformation.TransformText() 在c:\Users\waqarhabib\Desktop\FireBirdORM\FireBirdORM\DTO.tt中:第10行 在 Microsoft.VisualStudio.TextTemplateing.TransformationRunner.RunTransformation(TemplateProcessingSession 会话,字符串源,ITextTemplatingEngineHost主机,字符串& 结果)1


你能试着强制你的构建为64位而不是任何CPU吗?我猜T4 transformer是否以32位运行,因此没有绑定到正确的非托管数据库客户端dll。还要确保firebird的客户端dll是为64位环境构建的。我尝试将目标平台更改为64位,但仍然有相同的错误?在64位系统上,fineVS与32位IIRC在64位系统上运行的sql server t4模板版本相同。如果程序集需要64位,则会出现上述错误。如果您尝试仅使用32位编译测试应用程序并执行它们,我想错误会再次出现?我尝试过,当我将所有配置设置为32位时,示例应用程序正在工作,但t4没有。无论应用程序是64位还是32位,行为和错误都是相同的。T4模板在32位系统上进行了测试,工作正常。这很可能是由于FB ADO.NET客户端试图加载64位程序集或DLL造成的。项目生成配置将不起作用。尝试从VisualStudio中的服务器资源管理器获得成功的连接,然后在T4模板中使用完全相同的连接字符串。