0

c#とsystem.data.sqlite.dllx64を使用して構築されたWCFサービスライブラリがあります。ビルド構成は任意のCPUです。正常に動作します。しかし、system.data.sqlite.dllをx86ビットバージョンに変更すると、すべてのCPU構成で正常にビルドされますが、wcf methordsを実行するとエラーが発生し、x86ビルド構成では正常にビルドされますが、デバッグすると次のエラーが発生しますwcftestclientを使用します。

System.BadImageFormatException: Could not load file or assembly 'file:///C:\Users\lala\Desktop\New folder\New folder\CoreServiceWCF\CoreServiceWCF\CoreServiceWCF2\bin\x86\Debug\VplusCoreServiceWCF.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.
File name: 'file:///C:\Users\lala\Desktop\New folder\New folder\CoreServiceWCF\CoreServiceWCF\CoreServiceWCF2\bin\x86\Debug\VplusCoreServiceWCF.dll'
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
   at Microsoft.Tools.SvcHost.ServiceHostHelper.LoadServiceAssembly(String svcAssemblyPath)

=== Pre-bind state information ===
LOG: User = lala-PC\lala
LOG: Where-ref bind. Location = C:\Users\lala\Desktop\New folder\New folder\CoreServiceWCF\CoreServiceWCF\CoreServiceWCF2\bin\x86\Debug\VplusCoreServiceWCF.dll
LOG: Appbase = file:///C:/Users/lala/Desktop/New folder/New folder/CoreServiceWCF/CoreServiceWCF/CoreServiceWCF2/bin/x86/Debug
LOG: Initial PrivatePath = NULL
Calling assembly : (Unknown).
===
LOG: This bind starts in LoadFrom load context.
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load().
LOG: Using application configuration file: C:\Users\lala\Desktop\New folder\New folder\CoreServiceWCF\CoreServiceWCF\CoreServiceWCF2\bin\x86\Debug\VplusCoreServiceWCF.dll.config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Attempting download of new URL file:///C:/Users/lala/Desktop/New folder/New folder/CoreServiceWCF/CoreServiceWCF/CoreServiceWCF2/bin/x86/Debug/VplusCoreServiceWCF.dll.
ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated.

誰かが私がこの問題を解決するのを手伝ってくれますか?

4

1 に答える 1

0

任意のCPU用にアセンブリを構築すると、実行するコンピューターの最適な構成が採用されます。つまり、64ビットWindowsの場合は64ビットモードで実行され、32ビットの場合は32ビットモードで実行されます。ビットWindows、問題はこのアセンブリにあるようです:VplusCoreServiceWCF.dll、したがって、最初にこのアセンブリのビット数をチェックして、それが正しいものであるかどうかを確認することをお勧めします(あなたの場合はおそらく64ビットです)

編集:掘り下げてみると、WCFテストクライアントは64ビットモードでしか実行されないため、強制的に32ビットにする必要がある場合があります。これについては、ここで必要な情報を見つけることができます。標準の「WCFサービスライブラリ」をコンパイルできません。 "x86形式

于 2012-08-27T17:27:17.543 に答える