2015-12-08 2 views
2

Я ссылался на следующие библиотеки в новом проекте UWP.Апликационная авария при использовании PRISM 6 с UWP

  • Prism
  • Prism.Unity.Windows
  • Prism.Windows

После замены базового класса для класса приложений с PrismUnityApplication я и др исключение в коде

  var resourceLoader = ResourceLoader.GetForCurrentView(Constants.InfrastructureResourceMapId); 

следующим способом

public void RegisterFrame(IFrameFacade frame, String sessionStateKey) 

в классе

public class SessionStateService : ISessionStateService 

сообщение об ошибке: ResourceMap не найден.

ли я пропустил шаг, где некоторые

ответ

1

Я полагаю, вы сделали что-то неправильно в настройках, как я не могу воспроизвести ошибку с обоими пакетами стабильной и предварительной версии. Как описано в Признаке readme page, вы должны установить пакет Prism.Unity, а остальные будут втянуты соответственно.

Обратите внимание, что добавление в проект конкретного контейнера также приведет к созданию подходящего пакета для платформы и базовой библиотеки PCL. Например. если вы хотите использовать Unity в проекте WPF, добавьте пакет Prism.Unity, а остальные будут втянуты.

Это действительно приведет к ссылкам, которые вы упомянули, но только пакет Prism.Unity добавлен в качестве ссылки на проект. Файл project.json должны выглядеть следующим образом (в зависимости от использования стабильного или предварительно releasem вы будете иметь другую версию, конечно):

{ 
    "dependencies": { 
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0", 
    "Prism.Unity": "6.2.0-pre1" 
    }, 
    "frameworks": { 
    "uap10.0": {} 
    }, 
    "runtimes": { 
    "win10-arm": {}, 
    "win10-arm-aot": {}, 
    "win10-x86": {}, 
    "win10-x86-aot": {}, 
    "win10-x64": {}, 
    "win10-x64-aot": {} 
    } 
} 

Следующий шаг действительно заменяющий базовый класс с PrismUnityApplication как в C# и XAML файлы. Удалите все из класса App, за исключением из конструктора и метода OnLaunchApplicationAsync:

sealed partial class App : PrismUnityApplication 
{ 
    public App() 
    { 
     this.InitializeComponent(); 
    } 

    protected override Task OnLaunchApplicationAsync(LaunchActivatedEventArgs args) 
    { 
     NavigationService.Navigate("Main", null); 
     return Task.FromResult<object>(null); 
    } 
} 

Запуск приложения теперь дает вам эту ошибку, так как файл MainPage еще не переехал.

Исключение типа «System.ArgumentException» произошло в Prism.Windows.dll, но не был обработан в пользовательском коде

Дополнительная информация: Название страницы Main не имеет соответствующего типа в пространстве имен App2.Views

Добавить новую пустую страницу в папке «Представления», и все должно работать нормально. Повторите попытку, следуя приведенным выше шагам.

Вы можете найти образцы в https://github.com/PrismLibrary/Prism-Samples-Windows

+0

Сработало спасибо u –

0

Барт, я думаю, что arshadbadarkhan оказывает тот же вопрос, который мы были.

arshadbadarkhan, если вы похожи на нас, вы пытаетесь смоделировать свое новое приложение Prism6 после ссылки на AdventureWorks. Мы исправили эту проблему во время выполнения, добавив легко просматриваемую папку и файл из AW. Когда мы скопировали этот файл:

... \ Призма-Samples-Windows-мастер \ Призма-Samples-Windows-мастер \ AdventureWorks.Shopper \ AdventureWorks.Shopper \ Strings \ EN-US \ Resources.resw

в папку Strings/en-US в главном проекте приложения нашего нового продукта, мы избегали ошибки ResourceMap. Теперь мы можем воспользоваться любыми используемыми по умолчанию строками AW, и у нас есть хранилище, чтобы добавить наши собственные строки в будущем.

+0

Спасибо .. это была боль для меня в течение довольно долгого времени. –

Смежные вопросы