【问题标题】:C++/CLI using .NET 2+ [duplicate]使用 .NET 2+ 的 C++/CLI [重复]
【发布时间】:2012-01-14 08:36:34
【问题描述】:

可能重复:
Change C++/CLI project to another framework than 4.0 with vs2010

我用 C++/CLI 编写了一个 hello world 应用程序,我编译(使用安全的 clr)并在 Windows 下运行它。没问题。我在linux下运行它,我得到了这个错误

WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v1.1.4322

如何编译 C++/CLI 使其适用于 .NET 运行时 2/3.5 或 .NET 4? -edit- I found this answer 为什么说单声道 2.6 在遇到 .NET 4 运行时时回退(或报告?)版本 1。好的,现在我知道这是一个 .NET 4 运行时,但我如何将它编译为 .NET 2 或 3.5?我宁愿处理 .NET 4 而不是 1 这么好:)。但是我的服务器没有为那个 ATM 设置(monos VM 映像是我现在正在成功测试的)

【问题讨论】:

  • 您在 Linux 上的运行时是否支持除 1.1 之外的任何其他框架,这似乎是默认的?
  • @JoachimIsaksson:我使用的是支持 .NET 2-3.5 的单声道 2.6.7。我不相信 v4(我认为 2.8 支持)或更低版本(这就是我收到错误的原因)
  • 如果可以为 3.5 编译您的程序,它应该在 Windows 和 Mono 上运行(除非有任何错误或未实现的功能) 使用 4.0 的原因是什么? (我知道有好处,就这个案子问你这边)
  • @Joachim: 4 是默认值。我不知道如何改变它(因此这个问题)。我实际上不挖掘 4,但如果可能的话,我仍然喜欢使用 CLI C++ 的 2 选项
  • 你是用Visual Studio还是mono编译?

标签: .net-4.0 .net-2.0 c++-cli runtime


【解决方案1】:

VC++ 2010 编译器只生成 .NET 4.0 程序集。

VC++ 2008 编译器仅生成 .NET 2.0-3.5 程序集。

如果您安装了 VC++ 2008,您可以指示 Visual Studio 2010 使用 VC++ 2008 编译器,该编译器将创建一个 .NET 2.0-3.5 程序集。只需将项目属性下的“平台工具集”设置更改为“v90”即可。

【讨论】:

  • 我知道这是旧帖子-我有类似的问题。使用 vs 2008 的工具集/编译器编译的 C++/CLI 程序集是否与我在 VS-2010 中编译的纯 .Net 程序集兼容 - 即我使用 VS2010 构建的主要 .Net 程序集将使用使用 VS2008 构建的这个 C++/CLI 程序集,所有针对 .Net 2.0 和相同架构的程序集??
  • @Ahmed .NET 2/3 程序集,包括 C++/CLI 程序集,通常应该使用 .NET 4 CLR 在进程中加载​​并成功运行。
  • 我的主要程序集也是针对 .Net 2.0 而不是 4.0。唯一的问题是它将用 VS2010 编译,但 C++/CLI 将用 VS2008 编译
  • 这应该不会造成任何问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
  • 2014-10-14
  • 1970-01-01
相关资源
最近更新 更多