Fra*_*cis 6 csproj entity-framework-6
这是我的项目文件csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net4.6</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="EntityFramework" Version="6.2.0" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
在VisualStudio 2017中,我尝试添加项" ADO.NET实体数据模型 ".当按下添加按钮VS给我一个例外...

在日志文件中我得到了这个:
===================== 2018-02-21 15:23:47可恢复的System.Reflection.TargetInvocationException:调用目标引发了异常.---> Microsoft.VisualStudio.ProjectSystem.ProjectException:此项目项提供程序不支持项类型"EntityDeploy".在Microsoft.VisualStudio.ProjectSystem.ProjectErrorUtilities.ThrowProjectExceptionHelper(Exception innerException,String unformattedMessage,Object [] args)at Microsoft.VisualStudio.ProjectSystem.ProjectErrorUtilities.ThrowProjectException(String message,Object arg0)àMicrosoft.VisualStudio.ProjectSystem.CpsProjectItem`1. d__25.MoveNext()
此问题描述了与日志包含的相同的异常:
System.Reflection.TargetInvocationException:调用目标抛出了异常.---> Microsoft.VisualStudio.ProjectSystem.ProjectException:此项目项提供程序不支持项类型"EntityDeploy".
不幸的是,它没有直接的解决方案.
总的来说,您不应期望使用新的csproj格式顺利运行EF工具.EntityFramework6存储库中有一个讨论,它收集了迁移和EF工具的一些已知问题.EF团队有一个明确的声明,我们不应期望对这些问题进行近乎修复:
在翻转方面,可以在ASP.NET Core应用程序中使用EF6,但需要解决方法.例如,在这种情况下,将模型保存在具有传统项目文件的单独.NET Framework库中,并在使用迁移时从使用新项目系统的解决方案中卸载任何项目.
我们不愿意承诺让EF6迁移完全适用于新的项目系统,因为我们认为这将涉及一项重大的投资,这将阻碍我们在主要战略上的进展,但也许我们可以采取更便宜的措施来减少摩擦.解决方法,例如,使你仍然需要将EF6模型放在一个单独的项目中,但至少你不需要卸载其他项目.
关于你的问题,我可以建议如下:
尝试更新到最新的Visual Studio版本.我正在使用VS 2017版本15.3.0,我没有遇到同样的问题.在模型生成和设计人员工作期间,我仍然会收到自发的错误/警告消息,但最终会正确生成模型.
如果它不适合您,请考虑切换到EF团队建议的解决方法,即将EF模型保存在具有传统项目文件的单独库项目中.
好吧,这些建议可能不适合完美主义者,但是(再次)所有现有的VS工具尚未完全采用新的csproj格式,并且在发生这种情况时它是未知的.
| 归档时间: |
|
| 查看次数: |
741 次 |
| 最近记录: |