gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:12:29 25 4
gpt4 key购买 nike

我以为这个问题已经解决了。我使用的是 Visual Studio 2013,它是 Entity Framework 6.1。我收到错误消息:PublicKeyToken=xxxxxx 未标记为可序列化。

我以为这是固定的。它是否再次损坏,如果是,是否有解决方法?

谢谢。

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

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

以下是尝试安装到 General Empty C++ 项目时的完整错误消息:
(同样,同样的错误信息。)

最佳答案

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

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

请记住,在 native C++ 项目中使用 EF 的几率为零。在 C++/CLI 项目中,您只会有一个小小的尝试。从 CLR 节点中的项目模板开始是必需的第一步。

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

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

  • 请务必编写 C++/CLI 代码来使用它。请注意,您将有机会找到爱斯基摩人。更明智的方法是创建一个使用 EF 的 C# 库,并在 C++/CLI 项目中使用该库。

    关于entity-framework - Nuget 不会将 Entity Framework 安装到 C++/CLI 项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23571241/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com