【问题标题】:Downgrade .NET framework 4.5 to 4 in Visual Studio 2012 for C++ CLR supported DLL project?在 Visual Studio 2012 中为 C++ CLR 支持的 DLL 项目将 .NET 框架 4.5 降级到 4?
【发布时间】:2013-02-08 06:30:26
【问题描述】:

在链接 Visual C# .NET Framework 4.0 支持的项目时出现此错误,因为我添加了 C++ CLR DLL 与 4.5 .NET Framework 的引用。

error CS0246: The type or namespace name 'project' could not be found (are you missing a using directive or an assembly reference?)

因此,对于这个 C++ CLR 支持的 DLL 项目,我如何在 Visual Studio 2012 中将 .NET framework 4.5 降级到 4.0?

我之前看到过这就是原因。对于我的 C++,此链接可能有助于我的事业 http://msdn.microsoft.com/en-us/library/bb772098(v=vs.90).aspx

我刚刚也发现了这个警告:

 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1578,5): warning MSB3274: The primary reference "X" could not be resolved because it was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0". 

有人见过这个吗?那么我如何降级 C++ DLL?

谢谢

【问题讨论】:

  • 老兄——你在说什么? 1)您应该能够将您的项目配置为几乎任何您想要的.Net版本,并且2)根据您提供的有限信息,我什至不相信您的构建错误一定与.Net版本相关。建议:在您的原始项目中找出“项目”的来源。发回详细信息。
  • 我已经更新了问题,但我开发了这个其他 C++ DLL

标签: c++ .net visual-studio frameworks


【解决方案1】:

C++ IDE 不支持 .NET 项目的多目标。您需要手动编辑 .vcxproj。如果已打开项目,请关闭它,然后在文本编辑器中打开 .vcxproj。找到这一行:

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

并将其修改为“v4.0”。在 VS 中再次打开项目。项目 + 属性、通用属性、框架和参考。在列表中选择“系统”并检查相对路径属性。它现在应该指向 4.0 版本。

请注意一个重大问题和 C++ IDE 不支持多目标的核心原因。 #using directive 有问题,它从 c:\windows\microsoft.net 子目录加载程序集。这将使它加载一个 .NET 4.5 程序集,而不是您在以 4.0 为目标时想要的 4.0 程序集。 4.0 参考程序集存储在 c:\program files\reference 程序集中。这可能导致很难诊断运行时问题,4.5 程序集与 4.0 程序集不兼容。在您自己的代码中避免 #using 很容易,但它在 include/msclr/marshal.h 和 include/vcclr.h 头文件中使用。如果您使用这些标头,请注意购买者。

【讨论】:

  • 酷 - 我从来不知道。我一直在使用 MSVS ......但从来没有使用过微软的(可怕的,恕我直言)“CLI/托管 C++。很高兴知道 - 谢谢。
  • 如果将 c++/CLR 项目从 4.5 升级到 4.5.1、4.5.2、4.6,也会出现“include/msclr/marshal.h”和“include/vcclr.h”的问题或 VS2012 中的 4.6.1。
  • 当您想从 4.5.2 降级到普通 4.5 时同样适用
【解决方案2】:

我想通了。这是警告,但指定的链接确实解决了问题。

http://msdn.microsoft.com/en-us/library/bb772098(v=vs.90).aspx

【讨论】:

    【解决方案3】:

    对我有用的是:在项目属性 -> 配置属性 -> 项目默认值中。 .NET 目标框架版本 - 编辑为您需要的版本 - 在我的例子中是 4.6.1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-11
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 2018-01-10
      相关资源
      最近更新 更多