У меня проблема с нашим приложением silverlight, где во время выполнения 3 модуля не загружаются из-за ошибок призмы.
- Если я соберу (скомпилирую) наше решение с VS2010 и разверну xaps, все работает нормально, и у нас нет проблем.
- Если я строю с использованием MSBuild из .net 4, он компилируется без ошибок и создает файлы xap, но мы получаем ошибки времени выполнения на 3 из модулей.
Вот пример трассировки стека, если мы используем сгенерированные MSBuild xaps. Он отмечает, что stringlibrary.resources не может быть найден, но он отлично работает при сборке с VS.
StringLibrary.Resx установлен на встроенный ресурс
StringLibrary.designer.cs установлен на «compile»
Возникла исключительная ситуация при инициализации модуля Kmodule.
- Сообщение об исключении было следующим: не удалось разрешить зависимость, type = "Company.SOC.Modules.Kmodule.Infrastructure.Interfaces.IKMSPopupArticleViewerController", name = "(none)".
Исключительная ситуация во время: Вызов конструктора Company.SOC.Modules.Kmodule.Controllers.KMSPopupArticleViewerController (контейнер Microsoft.Practices.Unity.IUnityContainer, событие Microsoft.Practices.Prism.Events.IEventAggregator, событиеAggregator, Company.SOC.Sharedoot.Info.Ro.Ro.Ro.Or. , Company.Services.ClientProxies.Interfaces.IKMSServiceClient kmsServiceClient, Company.Shared.Infrastructure.Interfaces.ILogAuditFacade logAuditFacade).
Исключение составляет: MissingManifestResourceException - не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры. Убедитесь, что «Company.SOC.Modules.Kmodule.ModuleResources.Strings.StringLibrary.resources» правильно вставлен или связан со сборкой «Kmodule» во время компиляции, или что все требуемые сателлитные сборки являются загружаемыми и полностью подписаны.
На момент исключения контейнер был:
Resolving Company.SOC.Modules.Kmodule.Controllers.KMSPopupArticleViewerController, (нет) (сопоставлено с Company.SOC.Modules.Kmodule.Infrastructure.Interfaces.IKMSPopupArticleViewerController, (нет))
Вызывающий конструктор Company.SOC.Modules.Kmodule.Controllers.KMSPopupArticleViewerController (контейнер Microsoft.Practices.Unity.IUnityContainer, событие Microsoft.Practices.Prism.Events.IEventAggregatorAggregator, Company.SOC.Shared.InfrastructureotooRoIntoIn ::. .ClientProxies.Interfaces.IKMSServiceClient kmsServiceClient, Company.Shared.Infrastructure.Interfaces.ILogAuditFacade logAuditFacade)
- The Assembly that the module was trying to be loaded from was:Kmodule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
Check the InnerException property of the exception for more information. If the exception occurred while creating an object in a DI container, you can exception.GetRootException() to help locate the root cause of the problem.
в Microsoft.Practices.Prism.Modularity.ModuleInitializer.HandleModuleInitializationError (ModuleInfo moduleInfo, String assemblyName, Исключение исключения)
в Microsoft.Practices.Prism.Modularity.ModuleInitializer.Initialize (ModuleInfo moduleInfo)
в Microsoft.Practices.Prism.Modularity.ModuleManager.LoadModulesThatAreReadyForLoad ()
в Microsoft.Practices.Prism.Modularity.ModuleManager.IModuleTypeLoader_LoadModuleCompleted (Отправитель объекта, LoadModuleCompletedEventArgs e)
в Microsoft.Practices.Prism.Modularity.XapModuleTypeLoader.RaiseLoadModuleCompleted (LoadModuleCompletedEventArgs e)
в Microsoft.Practices.Prism.Modularity.XapModuleTypeLoader.HandleModuleDownloaded (DownloadCompletedEventArgs e)
в Microsoft.Practices.Prism.Modularity.XapModuleTypeLoader.IFileDownloader_DownloadCompleted (Отправитель объекта, DownloadCompletedEventArgs e)
at System.EventHandler`1.Invoke (Отправитель объекта, TEventArgs e)
в Company.SOC.SOCApp.Entities.SOCFileDownloader.RaiseDownloadCompleted (Поток потока, объект userToken)
в Company.SOC.SOCApp.Entities.SOCFileDownloader. <> c_ DisplayClass2. b _0 (Объекты s, OpenReadCompletedEventArgs a)
в System.Net.WebClient.OnOpenReadCompleted (OpenReadCompletedEventArgs e)
в System.Net.WebClient.OpenReadOperationCompleted (Object arg)Не удалось разрешить зависимость, type = "Company.SOC.Modules.Kmodule.Infrastructure.Interfaces.IKMSPopupArticleViewerController", name = "(none)".
Исключительная ситуация во время: Вызов конструктора Company.SOC.Modules.Kmodule.Controllers.KMSPopupArticleViewerController (контейнер Microsoft.Practices.Unity.IUnityContainer, событие Microsoft.Practices.Prism.Events.IEventAggregator, событиеAggregator, Company.SOC.Sharedoot.Info.Ro.Ro.Ro.Or. , Company.Services.ClientProxies.Interfaces.IKMSServiceClient kmsServiceClient, Company.Shared.Infrastructure.Interfaces.ILogAuditFacade logAuditFacade).
Исключение составляет: MissingManifestResourceException - не удалось найти ресурсы, подходящие для указанной культуры или нейтральной культуры. Убедитесь, что «Company.SOC.Modules.Kmodule.ModuleResources.Strings.StringLibrary.resources» был правильно встроен или связан со сборкой «Kmodule» во время компиляции, или что все требуемые спутниковые сборки загружаемы и полностью подписаны.
На момент исключения контейнер был:
Resolving Company.SOC.Modules.Kmodule.Controllers.KMSPopupArticleViewerController, (нет) (сопоставлено с Company.SOC.Modules.Kmodule.Infrastructure.Interfaces.IKMSPopupArticleViewerController, (нет))
Вызывающий конструктор Company.SOC.Modules.Kmodule.Controllers.KMSPopupArticleViewerController (контейнер Microsoft.Practices.Unity.IUnityContainer, событие Microsoft.Practices.Prism.Events.IEventAggregatorAggregator, Company.SOC.Shared.InfrastructureotooRoIntoIn ::. .ClientProxies.Interfaces.IKMSServiceClient kmsServiceClient, Company.Shared.Infrastructure.Interfaces.ILogAuditFacade logAuditFacade)
в Microsoft.Practices.Unity.UnityContainer.DoBuildUp (Тип t, Существующий объект, Имя строки, IEnumerable 1 resolverOverrides)
at Microsoft.Practices.Unity.UnityContainer.Resolve(Type t, String name, ResolverOverride[] resolverOverrides)
at Microsoft.Practices.Unity.UnityContainerExtensions.Resolve[T](IUnityContainer container, ResolverOverride[] overrides)
at Company.SOC.Modules.Kmodule.ModuleDefinitions.Kmodule.Initialize()
at Microsoft.Practices.Prism.Modularity.ModuleInitializer.Initialize(ModuleInfo moduleInfo)</StackTrace>
<Exception Type="System.Resources.MissingManifestResourceException">
<Message>Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "Company.SOC.Modules.Kmodule.ModuleResources.Strings.StringLibrary.resources" was correctly embedded or linked into assembly "Kmodule" at compile time, or that all the satellite assemblies required are loadable and fully signed.</Message>
<StackTrace> at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing(String fileName)
at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture, Dictionary
2 localResourceSets, Логические tryParents, Логические createIfNotExists, StackCrawlMark & stackMark)
в System.Resources.ResourceManager.InternalGetResourceSet (CultureInfo requiredCulture, логическое createIfNotExists, логическое tryParents, StackCrawlMark & stackMark)
в System.Resources.ResourceManager.InternalGetResourceSet (культура CultureInfo, логическое createIfNotExists, логическое tryParents)
в System.Resources.ResourceManager.GetString (имя строки, культура CultureInfo)
в Company.Shared.Infrastructure.BaseClasses.BaseStringHelper.Get (ресурс String)
в Company.SOC.Modules.Kmodule.Controllers.KMSPopupArticleViewerController.CreateDialog ()
в Company.SOC.Modules.Kmodule.Controllers.KMSPopupArticleViewerController..ctor (контейнер IUnityContainer, событие IEventAggregatorAggregator, ILayoutRoot layoutRoot, IKMSServiceClient kmsServiceClient, ILogAuditFacade logA)
в BuildUp_Company.SOC.Modules.Kmodule.Controllers.KMSPopupArticleViewerController (IBuilderContext)
в Microsoft.Practices.ObjectBuilder2.DynamicMethodBuildPlan.BuildUp (контекст IBuilderContext)
в Microsoft.Practices.ObjectBuilder2.BuildPlanStrategy.PreBuildUp (контекст IBuilderContext)
в Microsoft.Practices.ObjectBuilder2.StrategyChain.ExecuteBuildUp (контекст IBuilderContext)
в Microsoft.Practices.Unity.UnityContainer.DoBuildUp (Тип t, Объект существует, Имя строки, IEnumerable`1 resolverOverrides)
Вот еще одна ошибка на другом модуле, снова это происходит, если мы собираем с MSBuild, а не с VS.
Трассировка стека:Возникла исключительная ситуация при инициализации модуля AgentMgmtModule. - Сообщение об исключении было следующим: вызванный элемент не поддерживается в динамической сборке. - Сборка, из которой модуль пытался загрузить модуль, была: AgentMgmtModule, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null. Для получения дополнительной информации проверьте свойство InnerException исключения. Если во время создания объекта в DI-контейнере возникла исключительная ситуация, вы можете включить исключение. GetRootException () поможет найти основную причину проблемы. на Microsoft.Practices.Prism.Modularity.ModuleInitializer.HandleModuleInitializationError (ModuleInfo ModuleInfo, струнного AssemblyName, исключение исключения) при Microsoft.Practices.Prism.Modularity.ModuleInitializer.Initialize (ModuleInfo ModuleInfo) в Microsoft.Practices.Prism.Modularity.ModuleManager.LoadModulesThatAreReadyForLoad () в Microsoft.Practices.Prism.Modularity.ModuleManager.IModuleTypeLoader_LoadModuleCompleted (Object отправителя, LoadModuleCompletedEventArgs е) при Microsoft.Practices.Prism.Modularity.XapModuleTypeLoader.RaiseLoadModuleCompleted (LoadModuleCompletedEventArgs е) при Microsoft.Practices.Prism.Modularity.XapModuleTypeLoader.HandleModuleDownloaded ( DownloadCompletedEventArgs e) в Microsoft.Practices.Prism.Modularity.XapModuleTypeLoader.IFileDownloader_DownloadCompleted (отправитель объекта, DownloadCompletedEventArgs e) в System.EventHandler 1.Invoke(Object sender, TEventArgs e) at Company.SOC.SOCApp.Entities.SOCFileDownloader.RaiseDownloadCompleted(Stream stream, Object userToken) at Company.SOC.SOCApp.Entities.SOCFileDownloader.<>c__DisplayClass2.<DownloadAsync>b__0(Object s, OpenReadCompletedEventArgs a) at System.Net.WebClient.OnOpenReadCompleted(OpenReadCompletedEventArgs e) at System.Net.WebClient.OpenReadOperationCompleted(Object arg)</StackTrace> <Exception Type="System.NotSupportedException"> <Message>The invoked member is not supported in a dynamic assembly.</Message> <StackTrace> at System.Reflection.Emit.InternalAssemblyBuilder.GetManifestResourceNames() at System.Resources.ManifestBasedResourceGroveler.CaseInsensitiveManifestResourceStreamLookup(RuntimeAssembly satellite, String name) at System.Resources.ManifestBasedResourceGroveler.GetManifestResourceStream(RuntimeAssembly satellite, String fileName, StackCrawlMark& stackMark) at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture, Dictionary
2 localResourceSetsarkSackSarkTarkSerckMarkLeckMarnSearch, StackMark, atP, .ResourceManager.InternalGetResourceSet (CultureInfo требуемоеCulture, логическое значение createIfNotExists, логическое значение tryParents, StackCrawlMark & stackMark) в System.Resources.ResourceManager.InternalGetResourceSet (культура CultureInfo, логическое имя createIfNotResource.info). в Company.Shared.Infrastructure.BaseClasses.BaseStringHelper.Get (ресурс String) в Company.SOC.Modules.AgentMgmtModule.ModuleDefinitions.AgentMgmtModule.AddAgentMgmtToMainMenu () в Company.SOC.Module.Module.ModuleMoMoMoGoMo. .Practices.Prism.Modularity.ModuleInitializer.Initialize (ModuleInfo moduleInfo)
Если у кого-нибудь есть какие-либо предложения о том, как / где я мог бы выяснить, почему он работает с VS, а не с MSBuild, я попробую что-нибудь на этом этапе.
Спасибо.