MissingSatelliteAssemblyException Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Исключение возникает при отсутствии вспомогательной сборки для ресурсов языка и региональных параметров по умолчанию.
public ref class MissingSatelliteAssemblyException : SystemException
public class MissingSatelliteAssemblyException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class MissingSatelliteAssemblyException : SystemException
type MissingSatelliteAssemblyException = class
inherit SystemException
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type MissingSatelliteAssemblyException = class
inherit SystemException
Public Class MissingSatelliteAssemblyException
Inherits SystemException
- Наследование
- Атрибуты
Примеры
В следующем примере атрибут используется NeutralResourcesLanguageAttribute для указания того, что английский язык является языком и региональными параметрами приложения по умолчанию и что его ресурсы хранятся во вспомогательной сборке. Сам пример содержит ресурсы в файлах .txt для английского и французского языков, как описано в следующей таблице:
culture | Имя/значение ресурса | Имя файла |
---|---|---|
Английский | Greet=Hello | Greet.en.txt |
Французский | Greet=Bonjour | Greet.fr.txt |
Следующий исходный код создает приложение, которое изменяет текущий язык и региональные параметры пользовательского интерфейса сначала на французский (Франция), а затем на русский (Россия) и отображает соответствующий ресурс для конкретного языка и региональных параметров в обоих случаях.
using System;
using System.Globalization;
using System.Resources;
using System.Threading;
[assembly:NeutralResourcesLanguageAttribute("en", UltimateResourceFallbackLocation.Satellite)]
public class Example
{
public static void Main()
{
ResourceManager rm = new ResourceManager("GreetResources", typeof(Example).Assembly);
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR");
Console.WriteLine("The current UI culture is {0}", Thread.CurrentThread.CurrentUICulture.Name);
Console.WriteLine(rm.GetString("Greet"));
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU");
Console.WriteLine("The current UI culture is {0}", Thread.CurrentThread.CurrentUICulture.Name);
Console.WriteLine(rm.GetString("Greet"));
}
}
// The example displays the following output when created using BuildNoDefault.bat:
// The current UI culture is fr-FR
// Bonjour
// The current UI culture is ru-RU
//
// Unhandled Exception: System.Resources.MissingSatelliteAssemblyException:
// The satellite assembly named "HelloWorld.resources.dll, PublicKeyToken=" for fallback culture
// "en" either could not be found or could not be loaded. This is generally a setup problem.
// Please consider reinstalling or repairing the application.
// at System.Resources.ManifestBasedResourceGroveler.HandleSatelliteMissing()
// at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo cult
// ure, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackC
// rawlMark& stackMark)
// at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture
// , Boolean createIfNotExists, Boolean tryParents, StackCrawlMark& stackMark)
// at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean
// createIfNotExists, Boolean tryParents)
// at System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
// at Example.Main()
// The example displays the following output when created using BuildDefault.bat:
// The current UI culture is fr-FR
// Bonjour
// The current UI culture is ru-RU
// Hello
Imports System.Globalization
Imports System.Resources
Imports System.Threading
<assembly:NeutralResourcesLanguageAttribute("en", UltimateResourceFallbackLocation.Satellite)>
Module Example
Public Sub Main()
Dim rm As New ResourceManager("GreetResources", GetType(Example).Assembly)
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR")
Console.WriteLine("The current UI culture is {0}", Thread.CurrentThread.CurrentUICulture.Name)
Console.WriteLine(rm.GetString("Greet"))
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU")
Console.WriteLine("The current UI culture is {0}", Thread.CurrentThread.CurrentUICulture.Name)
Console.WriteLine(rm.GetString("Greet"))
End Sub
End Module
' The example displays the following output:
' The current UI culture is fr-FR
' Bonjour
' The current UI culture is ru-RU
'
' Unhandled Exception: System.Resources.MissingSatelliteAssemblyException:
' The satellite assembly named "HelloWorld.resources.dll, PublicKeyToken=" for fallback culture
' "en" either could not be found or could not be loaded. This is generally a setup problem.
' Please consider reinstalling or repairing the application.
' at System.Resources.ManifestBasedResourceGroveler.HandleSatelliteMissing()
' at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo cult
' ure, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackC
' rawlMark& stackMark)
' at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture
' , Boolean createIfNotExists, Boolean tryParents, StackCrawlMark& stackMark)
' at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean
' createIfNotExists, Boolean tryParents)
' at System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
' at Example.Main()
' The example displays the following output when created using BuildDefault.bat:
' The current UI culture is fr-FR
' Bonjour
' The current UI culture is ru-RU
' Hello
Для сборки и выполнения версии C# примера можно использовать следующий пакетный файл. Если используется Visual Basic, замените csc
на vbc
и расширение .cs
на .vb
. При выполнении примера отображается строка на французском языке, но создается исключение, если текущим языком MissingSatelliteAssemblyException и региональными параметрами является русский (Россия). Это связано с тем, что вспомогательная сборка en\HelloWorld.dll, содержащая ресурсы языка и региональных параметров по умолчанию, не существует.
vbc HelloWorld.vb
md fr
resgen Greet.fr.txt
al /out:fr\HelloWorld.resources.dll /culture:fr /embed:GreetResources.fr.resources
HelloWorld
Вы можете использовать следующий пакетный файл для сборки и выполнения версии Примера visual Basic. Если вы используете C#, замените vbc
csc
на , а расширение — .vb
на .cs
. При выполнении примера отображается строка на французском языке, если текущим языком и региональными параметрами пользовательского интерфейса является французский (Франция). Если текущим языком и региональными параметрами пользовательского интерфейса является Россия (русский), отображается строка на английском языке, так как ресурсы на русском языке не существуют, но диспетчер ресурсов может загружать ресурсы языка и региональных параметров по умолчанию из вспомогательной сборки en\HelloWorld2.dll.
vbc HelloWorld.vb /out:HelloWorld2.exe
md fr
resgen GreetResources.fr.txt
al /out:fr\HelloWorld2.resources.dll /culture:fr /embed:GreetResources.fr.resources
md en
resgen GreetResources.en.txt
al /out:en\HelloWorld2.resources.dll /culture:en /embed:GreetResources.en.resources
HelloWorld2
Комментарии
Язык и региональные параметры по умолчанию — это язык и региональные параметры, ресурсы которых загружаются, если не удается найти соответствующие ресурсы для конкретного языка и региональных параметров. По умолчанию ресурсы для языка и региональных параметров по умолчанию находятся в сборке main, а если диспетчер ресурсов пытается получить, но не может найти ресурс для языка и MissingManifestResourceException региональных параметров по умолчанию. Однако платформа .NET Framework загрузит ресурсы для языка и региональных параметров приложения по умолчанию из вспомогательной сборки, если NeutralResourcesLanguageAttribute атрибут задает значение UltimateResourceFallbackLocation.Satellite для параметра location. В этом случае возникает исключение, MissingSatelliteAssemblyException когда диспетчер ресурсов пытается получить ресурс языка и региональных параметров по умолчанию, а вспомогательная сборка для языка и региональных параметров, указанных в атрибуте NeutralResourcesLanguageAttribute , отсутствует. Обратите внимание, что исключение создается методом извлечения ресурсов, таким как ResourceManager.GetString или ResourceManager.GetObject, а не при создании экземпляра ResourceManager объекта.
MissingSatelliteAssemblyException использует COR_E_MISSINGSATELLITEASSEMBLY HRESULT со значением 0x80131536.
MissingSatelliteAssemblyException использует реализацию по умолчанию Equals , которая поддерживает равенство ссылок.
Список начальных значений свойств для экземпляра класса см. в MissingSatelliteAssemblyExceptionMissingSatelliteAssemblyException разделе Конструкторы.
Примечание
Всегда следует использовать NeutralResourcesLanguageAttribute атрибут для определения языка и региональных параметров приложения по умолчанию, чтобы, если ресурс для определенного языка и региональных параметров недоступен, приложение будет отображать приемлемое поведение.
Конструкторы
MissingSatelliteAssemblyException() |
Инициализирует новый экземпляр класса MissingSatelliteAssemblyException стандартными свойствами. |
MissingSatelliteAssemblyException(SerializationInfo, StreamingContext) |
Устаревшие..
Инициализирует новый экземпляр класса MissingSatelliteAssemblyException из сериализованных данных. |
MissingSatelliteAssemblyException(String) |
Инициализирует новый экземпляр класса MissingSatelliteAssemblyException указанным сообщением об ошибке. |
MissingSatelliteAssemblyException(String, Exception) |
Инициализирует новый экземпляр класса MissingSatelliteAssemblyException указанным сообщением об ошибке и ссылкой на внутреннее исключение, вызвавшее данное исключение. |
MissingSatelliteAssemblyException(String, String) |
Инициализирует новый экземпляр класса MissingSatelliteAssemblyException с заданным сообщением об ошибке и именем нейтрального языка и региональных параметров. |
Свойства
CultureName |
Получает имя языка и региональных параметров по умолчанию. |
Data |
Возвращает коллекцию пар «ключ-значение», предоставляющую дополнительные сведения об исключении. (Унаследовано от Exception) |
HelpLink |
Получает или задает ссылку на файл справки, связанный с этим исключением. (Унаследовано от Exception) |
HResult |
Возвращает или задает HRESULT — кодированное числовое значение, присвоенное определенному исключению. (Унаследовано от Exception) |
InnerException |
Возвращает экземпляр класса Exception, который вызвал текущее исключение. (Унаследовано от Exception) |
Message |
Возвращает сообщение, описывающее текущее исключение. (Унаследовано от Exception) |
Source |
Возвращает или задает имя приложения или объекта, вызывавшего ошибку. (Унаследовано от Exception) |
StackTrace |
Получает строковое представление непосредственных кадров в стеке вызова. (Унаследовано от Exception) |
TargetSite |
Возвращает метод, создавший текущее исключение. (Унаследовано от Exception) |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetBaseException() |
При переопределении в производном классе возвращает исключение Exception, которое является первопричиной одного или нескольких последующих исключений. (Унаследовано от Exception) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Устаревшие..
При переопределении в производном классе задает объект SerializationInfo со сведениями об исключении. (Унаследовано от Exception) |
GetType() |
Возвращает тип среды выполнения текущего экземпляра. (Унаследовано от Exception) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Создает и возвращает строковое представление текущего исключения. (Унаследовано от Exception) |
События
SerializeObjectState |
Устаревшие..
Возникает, когда исключение сериализовано для создания объекта состояния исключения, содержащего сериализованные данные об исключении. (Унаследовано от Exception) |