15

エンド ユーザー マシンでのアセンブリ解決に問題があり、ポータブル クラス ライブラリの使用に関連していると思われます....

Visual Studio 2010 で最初に作成された .NET 4.0 アプリケーションがあります。最近、Visual Studio 2012 にアップグレードし、ポータブル クラス ライブラリであるプロジェクトをいくつか作成しました。現在、これらの機能が必要だとは思いませんが、これらのライブラリの恩恵を受ける可能性のある Windows 8 ストア アプリケーションも構築しています。

プロジェクトをコンパイルすると、ポータブル ライブラリ機能は正確に何をしますか? 変更や再コンパイルなしで、さまざまなフレームワークで実行できると思います。

リフレクタdotPeekのライブラリを見ると、Platform 属性が次のように表示されます。

.NETPortable、バージョン=v4.0、プロファイル=Profile5

そして、参照は2.0っぽいようです:

mscorlib、バージョン = 2.0.5.0

システム、バージョン=2.0.5.0

System.Runtime.Serialization、バージョン = 2.0.5.0

このエンド ユーザーのマシンでアプリケーションを実行すると、ログ ファイルに次のエラーが表示されます。

ファイルまたはアセンブリを読み込めませんでした, 'System.Core, Version=2.0.5.0...'

Googling System.Core 2.0.5.0 は、SilverLight を参照しているようです。これは、対象となるフレームワークの 1 つと思われます。

このマシンには Visual Studio がインストールされていませんが、.NET 4.0 (4.0.3 アップデート) がインストールされています。

コンパイルするために別のことをする必要がありますか、依存関係で調査する必要があるもの、またはエンドユーザーのマシンにインストールする必要があるものはありますか? 2.0.5.0 は何を指していますか?

4

1 に答える 1

18

.NET 4 の場合、Portable Class Libraries を機能させるには更新 ( KB2468871 ) が必要です。KB記事から:

特徴5

サポート ポータブル ライブラリの変更。これらの変更には、API の更新とバインダーの変更が含まれます。この更新プログラムにより、CLR がポータブル ライブラリに正常にバインドできるようになり、単一の DLL を .NET Framework 4、Silverlight、Xbox、または Windows Phone で実行できるようになります。この更新により、パブリック Silverlight API が同じ場所の .NET Framework 4 に追加されます。API 署名は、プラットフォーム全体で一貫しています。すべての変更は 100% 互換性があり、既存のコードを壊すことはありません。

MSDN ポータブル クラス ライブラリ ドキュメントの「.NET Framework アプリの展開」セクションも参照してください。

編集:実際、あなたが言及したようにマシンに.NET 4.0.3がインストールされていれば、それで十分です。実際にインストールされていることを再確認できますか?

于 2012-12-14T04:04:52.720 に答える