SQL Server レプリケーション プロジェクトで「不正な形式のプログラムをロードしようとしました」というエラーが表示される
-
09-06-2019 - |
質問
正確なエラーは次のとおりです
ファイルまたはアセンブリ 'Microsoft.sqlserver.Replication、version = 9.0.242.0、Culture = neutral、publicKeyToken = 89845DCD8080CC91'またはその依存関係の1つをロードできませんでした。誤った形式でプログラムをロードする試みがなされました。
別のプロジェクトに 2 か月移動した後、最近再びこのプロジェクトに取り組み始めました。以前は完璧に動作していたので、すべてのリファレンスを再確認しました。
解決 2
解決策を見つけました。最近、マシンを Windows 2008 Server 64 ビットにアップグレードしました。SqlServer.Replication 名前空間は 32 ビット プラットフォーム用に作成されました。再度実行するために必要なのは、プロジェクト ビルド プロパティのターゲット プラットフォームを X86 に設定することだけでした。
他のヒント
の はげさんの答え 以下は正しいですが、AppPool で 32 ビット アプリケーションを有効にする必要がある場合もあります。
ローカル マシン (Vista 64 ビットを実行) で実行するようにアプリケーションを設定しているときに、次のエラーが発生しました。
ファイルまたはアセンブリをロードできませんでした
ChilkatDotNet2
またはその依存関係の1つ。誤った形式でプログラムをロードする試みがなされました。
明らかに、アプリケーションは使用します チルカットのコンポーネント, しかし、私たちが使用しているバージョンは32ビットバージョンのみのようです。
このエラーを解決するために、32 ビット アプリケーションを許可するように IIS のアプリ プールを設定しました。IIS マネージャーを開き、アプリ プールを右クリックして、[詳細設定] を選択します (下記を参照)。
次に、「32 ビット アプリケーションを有効にする」を True に設定します。
すべて完了!
Web プロジェクトのプロパティ ページのプラットフォーム ターゲットの値を次のように変更します。 Any CPU
.
IISに移動 - >アプリケーションプール - >アドバンス設定 - > 32ビットアプリケーションを有効にします
最近、Visual Studio からコードを実行しようとしたときに問題が発生しました。その場合に行う必要があるのは、
[ツール] > [オプション] > [プロジェクトとソリューション] > [WEB プロジェクト] を選択し、[Web サイトとプロジェクトに IIS Express の 64 ビット バージョンを使用する] にチェックを入れます。
このエラーが発生する方へ ASP.NET MVC 3 Visual Studio 自体内のプロジェクト:
私が取り組んでいる ASP.NET MVC 3 アプリでは、Microsoft.SqlServer.BatchParser への参照をプロジェクトに追加して、展開サーバー上で Microsoft.SqlServer.BatchParser が欠落している問題を解決しようとしました。(私たちのアプリは SMO を使用しています。正しい修正は、展開サーバーに SQL Server Native Client とその他のいくつかのものをインストールすることでした)。
BatchParser への参照を削除した後も、開いた ASP.NET MVC 3 ページごとに、BatchParser DLL を参照する「試行が行われました...」エラーが表示され続け、このエラーの後に数十のページ解析が行われました。エラー。
この問題が発生した場合は、ファイル検索を実行して、プロジェクトの \bin フォルダーのいずれかに DLL がまだ存在するかどうかを確認してください。 再構築を行ったとしても、Visual Studio は必ずしもすべての \bin フォルダー内のすべてを消去するとは限りません。DLL をビンから削除して再度ビルドすると、エラーは消えました。
Windows 10のMVC5アプリでIIS Expressに対してこれを実行しました。私の解決策は次のとおりでした。
- ツール =>
- オプション =>
- プロジェクトとソリューション =>
- ウェブプロジェクト =>
- Web サイトとプロジェクトには 64 ビット バージョンの IIS Express を使用する
- ウェブプロジェクト =>
- プロジェクトとソリューション =>
- オプション =>
32 ビット (true) に変更すると機能します
この値を取得した場合、長さはゼロ未満にすることはできません。パラメータ名:iisサーバー構成の長さの問題は、SQLサーバー名やサーバー名などのweb.configファイルの接続文字列を変更する簡単なことを実行し、iisを再起動してから、機能するページをロードしてみてください
もし Visual Studio 2012 でのパブリッシュ エラーが発生した場合は、チェックを外してみてください 「公開時にプロコンパイルする」 発行ウィザードのオプション。
Windowsフォームアプリケーションでは、これを行います。プロジェクトを右クリック> [> [プロパティ]] - >ビルド - > [32ビットの選択]チェックボックスを選択します。皆さんありがとう
ここにあるTEMPテストディレクトリを削除するc: users(user) appdata local temp visualstudiotestexploreRextions
Visual Studio ですべてのプロジェクトを x64 に設定する
デフォルトのプロセッサ アーキテクチャを x64 に設定します (Test/TestSettings/Default Processor Architecture)。
必ずソリューション ファイルをクリーン ビルドしてください。これがお役に立てば幸いです。
プロジェクトのプロパティでターゲット フレームワークを .NET Framework 4.7.1 から 4.6.2 に変更するとうまくいきました。