【问题标题】:Visual Studio C++/CLI Mysterious Error With Template带有模板的 Visual Studio C++/CLI 神秘错误
【发布时间】:2016-12-08 02:31:49
【问题描述】:

嗯,我一直在尝试在 Visual Studio 2015 中制作 C++ DLL,因为我对 Visual Studio 不是很好,所以花了一段时间。

我需要访问 .NET 库,特别是 System::Management。 (由于糟糕的 C++ 实现,编写代码比需要的要难一些,但至少它有一个。)

我修复了明显的错误,最后发现我必须在项目属性中启用 CLR,然后使用 References->Add Reference 选择相关库。但毕竟,现在它只是给出了这个奇怪的错误:

LNK1104: cannot open file 'MSCOREE.lib'

编译器不会在任何下方显示红色波浪线,并且错误声称该行是“1”并且文件是“LINK”,所以那里没有帮助。

我想我可能在某个地方弄乱了项目配置,所以我创建了一个新项目并将代码移过来。错误仍然发生。如果我关闭 CLR 并注释掉与 .NET 相关的代码,则构建成功且没有错误。

所以我尝试从模板(Visual C++ -> Win32 控制台应用程序)创建一个新项目,然后在执行其他任何操作之前启用 CLR。然后我又试了一次,选择了不同版本的 .NET 框架。

最后,我尝试使用模板(Visual C++ -> CLR -> CLR 控制台应用程序)创建一个项目并立即构建它。我的意思是字面上没有做任何其他事情。它仍然给出了同样的错误!

LNK1104: cannot open file 'MSCOREE.lib'

到底发生了什么?我在这里做错了什么,还是 VS2015 刚刚坏了?

【问题讨论】:

    标签: c# c++ .net dll visual-studio-2015


    【解决方案1】:

    我遇到了同样的问题。 安装“.NET Framework 4.6.1 SDK”解决了这个问题。注意版本号,从你的项目配置文件中获取

    【讨论】:

    • 为我工作。对于使用 Chocolaty 的用户,组件名称为“Microsoft.Net.ComponentGroup.4.6.1.DeveloperTools”。来自here
    • 我使用 VS2019 + vc141,我遇到了完全相同的问题。我看到了这个答案,但没有注意到它必须是 SDK。我还安装了 .NET Framework 4.8 并认为已经足够了。但它不是:).. 所以是的,.NET Framework 4.6.1 SDK 对于 vc141 工具集是必不可少的
    【解决方案2】:

    检查 Visual Studio 安装程序“C++/CLI 支持”以获取所需版本的构建工具。

    【讨论】:

    • 我如何知道我需要哪个版本的 C++/CLI 支持?我在 VS2019 中看到了多个版本。
    • @VinShahrdar 版本在 .sln/.proj 中指定
    【解决方案3】:

    试试这个, 右键单击显示“LNK1104:无法打开文件“MSCOREE.lib”的项目,然后选择属性--> 配置属性--> VC++ 目录--> 库目录--> 从下面添加两个条目,用分号分隔

    C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib
    C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64
    

    这是您的“mscoree.lib”应该在的位置,在执行此操作之前检查它是否存在,否则您可能需要安装/重新安装 Microsoft SDK

    【讨论】:

    • Windows SDK 10 是否有相同的安装?我在我的 Windows SDK 10 安装中找不到这个文件。 :-( 仍在调查,但不确定这个是否被更高版本的 SDK (10) 重用
    【解决方案4】:

    在某些情况下,SDK 可能不会按照MSCoree.lib missing from WinSDK 中的说明在 LIB 文件夹中安装所需的文件。他们的解决方案是执行安装修复。这可能行不通。

    我已成功运行 WinSDKInterop_amd64\WinSDKInterop_amd64.msi,从而创建了:

    C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\IA64\mscoree.lib
    C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\mscoree.lib
    C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64\mscoree.lib
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-04
      相关资源
      最近更新 更多