概要
ポータブル クラス ライブラリの問題は、 Microsoft Visual Studio 2012 の更新プログラム 2をインストールした後に発生する可能性があります。この資料では、これらの問題とその回避策について説明します。
問題 1
現象
ポータブル クラス ライブラリ プロジェクトをVisual Studio 2012 の更新プログラム 2をインストールした後にリソースを使用すると、次のエラー メッセージが表示されます。
'System.Type' に 'アセンブリ' の定義が含まれていないと、拡張メソッド 'アセンブリ' 型 'System.Type' の最初の引数を受け付けるが見つかりませんでした (が存在することを使用してディレクティブまたはアセンブリ参照しますか?)
注:
Microsoft Visual C# を使用する場合、このエラーが発生します。
'アセンブリ' が 'System.Type' のメンバーではありません。
注:
Microsoft Visual Basic を使用する場合、このエラーが発生します。
この問題は、プロジェクトのターゲットになると、次のプラットフォームのいずれかに発生します。
-
Microsoft.NET Framework 4.5 と Windows ストア アプリ用 .NET
-
.NET Framework 4.5 と Windows Phone 8
-
.NET Framework 4.5 を Windows ストア アプリケーション、.NET と Windows Phone 8
回避策
この問題を回避するのには、リソース ファイルのデザイナーで生成されたコードを修正します。これを行うには、エラー メッセージをダブルクリックし、[次の手順。
Visual C# の
-
次を追加するディレクティブを使用します。
using System.Reflection;
-
次のコードを検索します。
typeof(Resource1).Assembly
そのコードを次のコードに置き換えます。
typeof(Resource1).GetTypeInfo().Assembly
次のコードは、この問題が発生する例です。
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]internal static global::System.Resources.ResourceManager ResourceManager { get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PortableClassLibrary2.Resource1", typeof(Resource1).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
Visual Basic
-
次を追加するディレクティブを使用します。
Imports System.Reflection;
-
次のコードを検索します。
GetType(Resource1).Assembly
そのコードを次のコードに置き換えます。
GetType(Resource1).GetTypeInfo().Assembly
次のコードは、この問題が発生する例です。
'''<summary>
''' Returns the cached ResourceManager instance used by this class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Shared ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("PortableClassLibrary1.Resource1", GetType(Resource1).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
問題 2
現象
ポータブル クラス ライブラリ プロジェクトをVisual Studio 2012 の更新プログラム 2をインストールした後にリソースを使用することはできません。また、多くのさまざまなエラー メッセージのいずれかが表示される場合があります。たとえば、次のエラー メッセージのいずれかが表示される可能性があります。
型 'System.Net.HttpStatusCode' は、参照されていないアセンブリで定義されます。アセンブリへの参照を追加する必要があります ' System.Net、バージョン = 2.0.5.0、カルチャ依存しない、次の = = 7cec85d7bea7798e、Retargetable = [はい] のです。
暗黙的に型変換できません。 'System.Net.HttpStatusCode' ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\。NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll]'
この問題が発生、プロジェクトのターゲットになると、次のプラットフォームのいずれかに注意してください。
-
.NET Framework 4.5 と Windows Phone 8
-
.NET Framework 4.5 を Windows ストア アプリケーション、.NET と Windows Phone 8
原因
この問題は、Windows Phone ソフトウェア開発キット (SDK) 8.0 をインストールした後に Visual Studio 2012 の更新プログラム 2 をインストールするために発生します。したがって、次のファイルは削除されました。
-
%programfiles%\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile49\System.Net.dll
-
%programfiles%\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile49\System.ServiceModel.dll
-
%programfiles%\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile78\System.Net.dll
-
%programfiles%\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile78\System.ServiceModel.dll
回避策
この問題を解決するには、Visual Studio 2012 の修復プログラムを実行します。これを行うには、以下の手順を実行します。
-
[スタート] ボタン、[コントロール パネル] をクリックして、[プログラム] をクリックし、プログラムと機能。
-
、インストールされている Visual Studio 2012 のバージョンを右クリックし、[変更] をクリックします。
-
Visual Studio 2012 のセットアップ ウィザードが開いたら、[修復] をクリックします。
注 、新しい開発環境をセットアップする場合、この問題を回避する必要があります 2 をインストールする Visual Studio 2012 更新 Windows Phone 8.0 SDK をインストールする前にします。
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。