Nuget不会将Entity Framework安装到C++/CLI项目中

Jim*_*ion 4 entity-framework c++-cli visual-studio

我认为这个问题已得到修复.我正在使用Visual Studio 2013,它是Entity Framework 6.1.我收到错误消息:PublicKeyToken = xxxxxx未标记为可序列化.

我以为这是固定的.它是否再次被打破,如果是这样,是否有解决方法?

谢谢.

尝试安装到win32 C++控制台应用程序时,这是完整的错误消息.(使用默认设置构建,没有其他内容添加到新版本.)错误:在程序集'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine,Version = 12.0.0.0,Culture中键入'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCProjectShim' =中性,PublicKeyToken = b03f5f7f11d50a3a'未标记为可序列化.

尝试安装到C++ CLR时,这是完整的错误消息:(实际上,它是完全相同的错误消息.)

尝试安装到常规空C++项目时,这是完整的错误消息:(同样,错误消息相同.)

Han*_*ant 13

好的,我终于弄清楚你在做什么了.您正在尝试运行Nuget以将Entity Framework下载并安装到C++项目中.是的,那将是一场失败的鲸鱼.Nuget获得了在2.5版本上安装C++库的能力,但这仅适用于本机库.纯C++,不是像EF这样的托管代码.作为一个相对较新的功能,它没有做任何事情来阻止你弄错,它不会将可用的包过滤到可以在C++项目中工作的那种.

失败的步骤是最后一步,下载和复制文件工作正常,但Nuget运行Powerscript脚本来修改项目属性.对于EF来说,这是为了在C#或VB.NET项目中工作而编写的.C++项目的VS扩展模型(由错误消息中报告的VCProjectEngine类实现)太不同,不允许该脚本成功完成.

请记住,在本机C++项目中使用EF的几率为零.在C++/CLI项目中,你只会有一点点注意力.从CLR节点中的项目模板开始是必需的第一步.

下一个是欺骗Nuget安装程序,在您的解决方案中添加一个虚拟C#项目并运行Nuget以将EF安装到该项目中.您将看到它将app.config文件添加到项目中,您需要在C++/CLI项目中执行相同的操作.它还添加了两个EF程序集,您还需要将它们添加到C++/CLI项目中:

  • 在"解决方案资源管理器"窗口的"属性"中右键单击项目
  • 选择Common Properties + References
  • 单击"添加新引用"按钮
  • 单击"浏览"按钮
  • 导航到虚拟C#项目的packages\EntityFramework.6.1.0\lib\net45目录
  • 选择你在那里看到的EntityFramework.dll
  • 重复以在那里添加EntityFramework.SqlServer.dll.

请务必编写C++/CLI代码以使用它.请注意,你有一个爱斯基摩人有机会找到任何东西.更安全的方法是创建一个使用EF的C#库,并在C++/CLI项目中使用该库.