Ошибка выполнения Silverlight 4 Prism при сборке с MSBuild, отлично работает при сборке с VS2010 - PullRequest
0 голосов
/ 10 июля 2011

У меня проблема с нашим приложением 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.&lt;&gt;c__DisplayClass2.&lt;DownloadAsync&gt;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&amp; 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, я попробую что-нибудь на этом этапе.

Спасибо.

...