9

WebフォームWebサイトプロジェクトがあります。このWebサイトは、4つのクラスライブラリプロジェクトを参照しています。これらのクラスライブラリのうち3つは、サードパーティのアセンブリを参照しています。3つのクラスライブラリプロジェクトのそれぞれについて、次のコンパイラエラーが発生します。

ASPNETCOMPILER:エラーASPCONFIG:ファイルまたはアセンブリ'myAssembly'またはその依存関係の1つを読み込めませんでした。間違った形式のプログラムを読み込もうとしました。[計画。metaproj]

クラスライブラリプロジェクトで、AnyCPU / x86/x64の可能なすべての組み合わせを試しました。Webサイトプロジェクトでこれを変更することはできません。サードパーティのdllのx86バージョンとx64バージョンの両方があります。両方試してみました。

"ClassLibrary.csproj"(デフォルトのターゲット)(4)->(ResolveAssemblyReferencesターゲット)-> C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(1561,5):警告MSB3270:あり構築中のプロジェクト「MSIL」のプロセッサアーキテクチャと、参照「ThirdPartyDll、Version = xxx、Culture = neutral、processorArchitectu re = x86」、「x86」のプロセッサアーキテクチャの不一致でした。この不一致により、実行時の障害が発生する可能性があります。プロジェクトと参照の間でプロセッサアーキテクチャを調整するために、ConfigurationManagerを使用してプロジェクトの対象となるプロセッサアーキテクチャを変更することを検討してください。または、プロジェクトのターゲットプロセッサアーキテクチャと一致するプロセッサアーキテクチャの参照に依存します。[ClassLibrary.cspro j]

以下は、ソリューションの構成を示しています。注ここで「AnyCPU」から変更することはできません。個々のクラスライブラリプロジェクト内からのみ変更できます。

ソリューション構成

すべての.NET4

WebサイトをWebアプリケーションに変換することはできません。

ありがとう、

4

2 に答える 2

6

明らかに、ネイティブの32ビットDLLがあります。したがって、IISのアプリケーションプールは、.NETFrameworkを32ビットモードで実行するように構成する必要があります。

これは、IISマネージャーで構成できます。[アプリケーションプール]に移動し、関連するアプリケーションプールを選択して、[詳細設定...]ダイアログを開きます。32ビットオプションはトップに近いです。

于 2012-07-27T16:07:26.027 に答える
0

参照されるアセンブリの1つはx86のみであるため、それを参照するプロジェクトチェーンはx86専用にビルドする必要があります。また、アプリケーションプールをデプロイするときは、32ビット用に構成されていることを確認してください。

于 2012-07-27T15:28:12.830 に答える