我在新的UWP项目中引用了以下库。
用PrismUnityApplication替换app类的基类后,在代码
中替换异常 var resourceLoader = ResourceLoader.GetForCurrentView(Constants.InfrastructureResourceMapId);
以下方法
public void RegisterFrame(IFrameFacade frame, String sessionStateKey)
在班级
public class SessionStateService : ISessionStateService
错误消息为:找不到ResourceMap。
我错过了某个地方的步骤
答案 0 :(得分:1)
我认为你在设置中做错了,因为我无法使用稳定版和预发行版包重现错误。如Prism的readme page所述,你应该只安装Prism.Unity软件包,其余的将被相应地拉入。
请注意,将特定于容器的包添加到项目中,还将引入正确的特定于平台的包和核心PCL库。例如。如果您想在WPF项目中使用Unity,请添加Prism.Unity包,其余的也将被拉入。
这确实会引入您提到的引用,但只有Prism.Unity包被添加为项目引用。您的project.json
文件应如下所示(取决于使用稳定版或预发布版,您将拥有不同版本的课程):
{
"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": {}
}
}
下一步确实是在C#和XAML文件中用PrismUnityApplication替换基类。除了构造函数和OnLaunchApplicationAsync
方法之外,从App类中删除所有内容:
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文件尚未移动。
类型&#39; System.ArgumentException&#39;的例外情况发生在 Prism.Windows.dll但未在用户代码中处理
其他信息:页面名称Main没有关联 输入命名空间App2.Views
在Views文件夹下添加一个新的空白页面,一切运行正常。请仔细按照上述步骤再试一次。
找到样本答案 1 :(得分:0)
arshadbadarkhan,如果您像我们一样,您正在尝试在AdventureWorks参考实施后建模您的新Prism6应用程序。我们通过在AW中添加一个容易被忽略的文件夹和文件来修复此运行时问题。当我们复制这个文件时:
... \棱镜样本-Windows的主\棱镜样本-Windows的主\ AdventureWorks.Shopper \ AdventureWorks.Shopper \字符串\ EN-US \ Resources.resw
到我们新产品的主应用程序项目中的Strings / en-US文件夹,我们避免了找不到ResourceMap错误。现在我们可以利用AW使用的任何默认字符串,并且我们有一个存储库可以在将来添加我们自己的字符串。