gpt4 book ai didi

c# - 在互操作(C++ 管理)项目中使用 C# dll(使用 Microsoft.bcl 构建)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:08 67 4
gpt4 key购买 nike

我们在 .net4.0 中有一个 C# DLL,但使用 Microsoft.bcl、Microsoft.bcl.async、Microsoft.bcl.build、M​​icrosoft.net.http 构建。这些库来自 nuget。我们有理由不迁移到 .net4.5,但想使用异步,等待这些 bcl 库。在 C# 项目中一切正常,但我们无法在 C++ 互操作项目中添加此 DLL,我们收到此错误:

当我们尝试将此引用添加到项目时出现此错误。

即使 clr interop 项目也在 .net4.0 中,并且我们添加的 DLL 也在 .net4.0 中,但我们最终会收到此错误。有办法解决这个问题吗?

Error in text format:
---------------------------
Microsoft Visual Studio
---------------------------
Could not add a reference to:

C:\xxx\xxx\xx\xxxHelper.dll



For one of the following reasons:

- Targets a higher version of the .NET Framework

- Not a .NET assembly

- Not a registered ActiveX control
---------------------------
OK
---------------------------

重现此问题的代码:https://dl.dropboxusercontent.com/u/1967630/BCL_Problem/oAuth2_SDK_consumer_DLL/BCL_Problem_projects.zipx

最佳答案

我重现,确实看起来像一个错误。从您截图中的错误信息来看您使用的是 VS2013。非常无益的消息,它在 VS2015 中被淡化但仍然失败。奇怪的错误顺便说一句,它似乎将您的 C# 项目用作框架程序集的 Microsoft.Threading.Task 程序集引用。据我所知,之前没有关于这个问题的 SO 问题,大多数程序员无需与机器打架就可以解决这个问题。

您应该考虑按照他们的方式来避免此错误。如果您使用“添加引用”对话框中的“浏览”按钮,这只会出错。但是当您使用项目引用时效果很好,这是大多数程序员喜欢配置他们的解决方案的方式。因此,请使用"file">“添加”>“现有项目”,选择您的 C# 项目。然后再次添加引用,但这次从解决方案 > 项目列表中选择 C# 项目,而不是使用浏览按钮。

如果出于某种原因这是不受欢迎的,那么您可以通过其他方式解决这个问题。在文本编辑器中打开 .vcxproj,记事本就可以了。找到这个元素:

   <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

并修改版本号为v4.5。现在像以前一样使用浏览按钮添加引用,这次没有提示。并返回记事本并将版本号更改回 v4.0

关于c# - 在互操作(C++ 管理)项目中使用 C# dll(使用 Microsoft.bcl 构建),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40258860/

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