SQL Server レプリケーション プロジェクトで「不正な形式のプログラムをロードしようとしました」というエラーが表示される

StackOverflow https://stackoverflow.com/questions/41449

  •  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 ビット アプリケーションを有効にする必要がある場合もあります。

ソース: http://www.alexjamesbrown.com/uncategorized/could-not-load-file-or-assembly-chilkatdotnet2-or-one-of-its-dependency-an-attempt-was-made-to-load-a-不正な形式のプログラム/

ローカル マシン (Vista 64 ビットを実行) で実行するようにアプリケーションを設定しているときに、次のエラーが発生しました。

ファイルまたはアセンブリをロードできませんでした ChilkatDotNet2 またはその依存関係の1つ。誤った形式でプログラムをロードする試みがなされました。

明らかに、アプリケーションは使用します チルカットのコンポーネント, しかし、私たちが使用しているバージョンは32ビットバージョンのみのようです。

このエラーを解決するために、32 ビット アプリケーションを許可するように IIS のアプリ プールを設定しました。IIS マネージャーを開き、アプリ プールを右クリックして、[詳細設定] を選択します (下記を参照)。

enter image description here

次に、「32 ビット アプリケーションを有効にする」を True に設定します。

enter image description here

すべて完了!

Web プロジェクトのプロパティ ページのプラットフォーム ターゲットの値を次のように変更します。 Any CPU.

enter image description here

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 でのパブリッシュ エラーが発生した場合は、チェックを外してみてください 「公開時にプロコンパイルする」 発行ウィザードのオプション。

Un-check

Windowsフォームアプリケーションでは、これを行います。プロジェクトを右クリック> [> [プロパティ]] - >ビルド - > [32ビットの選択]チェックボックスを選択します。皆さんありがとう

  1. ここにあるTEMPテストディレクトリを削除するc: users(user) appdata local temp visualstudiotestexploreRextions

  2. Visual Studio ですべてのプロジェクトを x64 に設定する

  3. デフォルトのプロセッサ アーキテクチャを x64 に設定します (Test/TestSettings/Default Processor Architecture)。

必ずソリューション ファイルをクリーン ビルドしてください。これがお役に立てば幸いです。

プロジェクトのプロパティでターゲット フレームワークを .NET Framework 4.7.1 から 4.6.2 に変更するとうまくいきました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top