Введение
Переносной библиотеки классов проблемы могут возникнуть после установки 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 и .NET для приложений для магазина Windows
-
.NET Framework 4.5 и Windows Phone 8
-
.NET Framework 4.5, .NET для приложений для магазина Windows и Windows Phone 8
Временное решение
Чтобы обойти эту проблему, исправьте созданный конструктором код в файле ресурсов. Чтобы сделать это, дважды щелкните сообщение об ошибке и выполните следующие действия:
Для C#
-
Добавьте следующие директивы using:
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
-
Добавьте следующие директивы using:
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
Симптомы
Нельзя использовать ресурсы для построения проекта переносимой библиотеки классов, после установки обновления 2 Visual Studio 2012. Кроме того может появиться одно из многих различных сообщений об ошибках. Например может появиться одно из следующих сообщений об ошибке:
«System.Net.HttpStatusCode» тип определен в сборке, на которую нет ссылки. Необходимо добавить ссылку на сборку "System.Net, версия = 2.0.5.0, язык и региональные параметры нейтрального PublicKeyToken = = 7cec85d7bea7798e Retargetable = Yes.
Невозможно неявным образом преобразовать тип «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, .NET для приложений для магазина Windows и Windows Phone 8
Причина
Эта проблема возникает, поскольку обновления 2 Visual Studio 2012 был установлен после установки Windows Phone Software Development Kit (SDK) 8.0. Таким образом были удалены следующие файлы:
-
%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, нажмите кнопку " восстановить ".
Примечание. Если настроить новую среду разработчика, чтобы избежать этой проблемы, следует установить Visual Studio 2012 обновление 2 перед установкой пакета SDK Windows Phone 8.0.
Статус
Корпорация Майкрософт подтверждает, что это проблема продуктов Майкрософт, перечисленных в разделе "Относится к".