我有一个针对Fall Creators Update的UWP
应用程序。我一直在here和here关注本教程。
每当我执行Add-Migration
时,我都会收到错误
启动项目' UEX.Apps.Enforce.UWP'是一个通用Windows平台应用程序。此版本的Entity Framework核心软件包管理器控制台工具不支持此类项目。有关将EF Core Tools与UWP项目一起使用的更多信息,请参阅https://go.microsoft.com/fwlink/?linkid=858496
我在这里不知所措。这似乎根本不起作用。
我尝试了什么:使用Fall Creators Update设置全新的Windows 10 VM。安装VS2017的新副本。将项目复制到新计算机。仍然给我同样的错误。
我发现很难隔离代码,因为它只是基本的实体框架初始化代码。我认为错误存在于元信息中。正如我尝试使用新的VS2017安装一样,我不会想到它是关于混乱的包装或任何东西。
我已将项目简化为项目文件和上下文以及一个实体。我在这里上传了它:
编辑:根据Nico Zhus的回答,我已逐步跟踪the tutorial并将我的模型类放入单独的.net Standard class library
。我编辑了项目文件并添加了EF引用。但是,本教程中缺少一个步骤,详细说明了如何从UWP
项目中实际引用模型代码,因为未提及添加实际引用。我尝试通过右键单击Add reference
菜单添加引用,选择.net standard class library
,但出现错误。
无法添加对项目< ...>
的引用
我还将类库设置为我的启动项目,执行Add-Migration
命令,并且它不会抛出任何异常,但它也不会添加我期望的迁移文件。没有任何事情发生。
编辑2 :
根据我改变了Nico Zhus评论,我将TargetFramework
的项目文件的.net standard class library
属性更改回原来的状态,现在我可以从我的class library
引用UWP
项目。但是,我仍然无法在我的模型项目上执行Add-Migration
启动项目'我的项目'目标框架' .NETStandard'。没有与此框架关联的运行时,并且无法直接执行以其为目标的项目。要将Entity Framework核心软件包管理器控制台工具与此项目一起使用,请添加一个针对引用此项目的.NET Framework或.NET Core的可执行项目,并将其设置为启动项目;或者,更新此项目以跨目标.NET Framework或.NET Core。
答案 0 :(得分:1)
启动项目' UEX.Apps.Enforce.UWP'是一个通用Windows平台应用程序。此版本的Entity Framework核心软件包管理器控制台工具不支持此类项目。有关将EF Core Tools与UWP项目一起使用的更多信息,请参阅https://go.microsoft.com/fwlink/?linkid=858496
根据Getting Started with EF Core on Universal Windows Platform (UWP) with a New Database,您需要为您的UWP应用创建一个新的模型项目(类库(.NET标准))。在执行工具命令(Add-Migration MyFirstMigration
)之前,需要选择模型项目作为默认项目,并将其设置为源中的启动项目。
<强>更新强>
在执行工具命令之前,需要将以下内容放在Model
项目的csproj文件中:
<PropertyGroup>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>
如果您已成功添加迁移文件,则可以更改TargetFramework
以确保UWP项目可以引用它。
<TargetFrameworks>netstandard2.0</TargetFrameworks>