2016-04-07 17 views
0

WebSupergooのABCpdf .NET v10を使用しようとしています。インストーラを使うとうまくいきます。しかし、v8はすでに他のプロジェクトでサーバにインストールされているため、現時点ではインストーラを実行したくありません。 (近い将来に別のマシンでインストールをテストしたり、それらのプロジェクトをアップグレードすることはできますが、このプロジェクトはそれを待つことができません。)ビン内の非アセンブリDLL

WebSupergooの「手動インストール」の指示は、 3つのメインDLL(ABCpdf.dll、ABCpdf10-32.dll、およびABCpdf10-64.dll)をbinフォルダにコピーし、ABCpdf.dllへの参照を追加します。

ソースコントロールがそのフォルダから何も追加しないように設定されているので、本当にそれらをbinフォルダに入れたくありません。しかし、(今のところ)それを動作させるために、それらはそのフォルダに置かれました。私はプロジェクトを実行しようとすると、その後、私は(フォルダ名は、セキュリティのために変更された)次のエラーを取得する:

System.BadImageFormatException was unhandled by user code 
    HResult=-2146234344 
    Message=Could not load file or assembly 'file:///D:\\Projects\Solution\WebProject\bin\ABCpdf10-32.dll' or one of its dependencies. The module was expected to contain an assembly manifest. 
    Source=mscorlib 
    FileName=file:///D:\Projects\Solution\WebProject\bin\ABCpdf10-32.dll 
    FusionLog==== Pre-bind state information === 
LOG: Where-ref bind. Location = D:\Projects\Solution\WebProject\bin\ABCpdf10-32.dll 
LOG: Appbase = file:///D:/Projects/Solution/WebProject/ 
LOG: Initial PrivatePath = D:\Projects\Solution\WebProject\bin 
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: D:\\Projects\Solution\WebProject\web.config 
LOG: Using host configuration file: D:\Documents\IISExpress\config\aspnet.config 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. 
LOG: Attempting download of new URL file:///D:/Projects/Solution/WebProject/bin/ABCpdf10-32.dll. 
ERR: Failed to complete setup of assembly (hr = 0x80131018). Probing terminated. 

    StackTrace: 
     at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
     at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
     at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
     at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark) 
     at System.Reflection.Assembly.LoadFrom(String assemblyFile) 
     at WebActivator.PreApplicationStartCode.Start() in D:\Code\Bitbucket\WebActivator\WebActivator\PreApplicationStartCode.cs:line 11 
    InnerException: 

当社れる好ましい方法は、(現在のソリューション・レベルで)「のlib」フォルダにそれらを持っているだろう。だから、私は3つのDLLをそのフォルダに入れ、参照を追加しました。我々は次のエラーを取得するPDFを作成しようとするプロジェクトがコンパイルされ、実行されますが、:

Unable to load DLL 'ABCpdf10-32.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) 

WebSupergooのサポートは言う:「それはアセンブリが含まれていないコースのようABCpdf10-32.dllがアセンブリではありませんマニフェスト "。

ABCpdf10-32.dllをbinフォルダから取り出してみましたが、ABCpdf10-64.dllで同じエラーが発生しました。

Falseを参照して「ローカルコピー」を設定しようとしました。変化なし。

ローカルコピー:https://msdn.microsoft.com/en-us/library/t1zz5y8c(v=vs.90).aspx

私は "プロービング" 技術を使用してみました。私は、プロジェクト用のweb.config & app.configファイルの両方で試してみました(ソリューションには表示されません)。また、プロジェクト内にlibフォルダを移動しようとしました。変化なし。

プロービング:https://msdn.microsoft.com/en-us/library/823z9h8w(v=vs.110).aspx

私はこの時点で他に何をしようとするかわかりません。どんな助けでも大歓迎です!

答えて

0

System.BadImageFormatException 64ビット環境で32ビットのDLLを使用している場合、またはviceversaの場合に発生する一般的な例外です。

Webアプリケーション:使用されているかどうかにかかわらず、すべてのdllを使用します(WebActivator.PreApplicationStartCode.Start())。 IISプールを確認します.64ビットですか?フォルダまたはサブフォルダのすべての32 dllを削除します。 32に強制していますか?次に、フォルダまたはサブフォルダ上の64個のDLLをすべて削除します。

関連する問題