6

私は 4.5 で構築した .NET アプリケーションを持っています。このアプリケーションには、4.5 で構築された一連のライブラリへの参照があり、それ自体が 4.5 などへの参照を持っています。アプリケーションを配布しようとしているユーザー グループは、 4.0がインストールされているため、実行可能ファイルの実行に問題があります。特に、MissingMethodException が発生しています。

Method not found: 'System.Type System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid)'.

各ユーザーを 4.5 にアップグレードするのに問題がある可能性があるため (マシンの管理者権限を持っているユーザーはおらず、ユーザーごとに個別のアップグレード リクエストが必要になるため)、プロジェクトを 4.0 として再構築する簡単な方法を探しています。 . これには、すべてのライブラリとその参照ライブラリを 4.0 で再構築する必要があるようです。各ライブラリを 1 つずつ調べて 4.0 バージョンをビルドするよりも簡単な方法はありますか? 「ターゲットフレームワークで参照されているすべてのライブラリを再構築する」などのワンクリックオプションのようなものだと思います。

4

4 に答える 4

4

.Net 4.5 DLL に依存している場合、プロジェクトを正常にダウングレードするには、それらの .Net 4.0 バージョンも取得する必要があります。.Net プロジェクトは、参照アセンブリと同じバージョンの .Net までの .Net DLL のみを参照できます。

これを行う最も簡単な方法は、NuGetなどを使用して依存関係を管理することです。VS でプロジェクトのターゲット フレームワーク バージョンを変更する場合は、NuGet を使用して依存関係をアンインストールして再インストールする必要があることに注意してください。これは、ターゲット フレームワーク バージョンを変更したときに NuGet が自動的にこれを実行しないためです。

もちろん、すべての依存関係が独自のコードにあり、NuGet などの依存関係管理システムを介してこれを公開していない場合は、他のすべてのコードも .Net 4.0 にダウングレードする必要があります。

于 2013-01-14T18:52:15.103 に答える
4

Visual Studio を使用するときは、プロジェクトを右クリックしてフレームワークを変更し、参照を修正して再コンパイルします。通常はまっすぐ進みます。

于 2013-01-14T18:16:05.063 に答える
1

この MSDN ページを見て、問題なくプロジェクトを下位のターゲット フレームワークに正しく切り替えてください。バージョンに関しては少し古くなっていますが、プロセスは同じです。

于 2013-01-14T18:18:20.280 に答える
0

これは私の経験に基づいています。最初に .net Framework 4.5 でアプリケーションを作成しましたが、それを .net Framework 4.0 に変換したいと考えました。最初に4.0を作成した新しいプロジェクトを作成し、以前のアプリケーションのすべてのフォームとコントロールをコピーして貼り付けたところ、機能しました。フレームワーク 4.5 は Aero2 を使用しており、4.0 は Aero です...幸運を祈ります :)

于 2013-07-19T06:56:24.257 に答える