gpt4 book ai didi

c++ - 在 Visual Studio 2012 中为 C++ CLR 支持的 DLL 项目将 .NET Framework 4.5 降级到 4?

转载 作者:可可西里 更新时间:2023-11-01 17:26:07 25 4
gpt4 key购买 nike

链接 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?

谢谢

最佳答案

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 assemblies 中。这会导致很难诊断运行时问题,4.5 程序集与 4.0 程序集不兼容。在您自己的代码中避免#using 很容易,但它在 include/msclr/marshal.h 和 include/vcclr.h 头文件中使用。如果您使用这些 header ,请买者自负。

关于c++ - 在 Visual Studio 2012 中为 C++ CLR 支持的 DLL 项目将 .NET Framework 4.5 降级到 4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14766957/

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