Visual Studio C++/CLI 模板出现神秘错误

Pec*_*heu 12 .net c# c++ dll visual-studio-2015

好吧,我一直在尝试在 Visual Studio 2015 中创建一个 C++ DLL,这花了一段时间,因为我对 Visual Studio 不太熟悉。

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

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

LNK1104: cannot open file 'MSCOREE.lib'
Run Code Online (Sandbox Code Playgroud)

编译器不会在任何内容下方显示红色波浪线,并且错误声称该行为“1”,文件为“LINK”,因此没有帮助。

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

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

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

LNK1104: cannot open file 'MSCOREE.lib'
Run Code Online (Sandbox Code Playgroud)

这到底是怎么回事?我在这里做错了什么,还是 VS2015 刚刚坏了?

小智 10

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

  • 我使用 VS2019 + vc141 并且遇到了完全相同的问题。我看到了这个答案,但没有注意到它必须是**SDK**。我还安装了 .NET Framework 4.8,并认为这已经足够了。但事实并非如此:).. 所以,是的,.NET Framework 4.6.1 SDK 对于 vc141 工具集至关重要 (3认同)

Ser*_*gei 8

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


小智 2

试试这个,右键单击显示“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
Run Code Online (Sandbox Code Playgroud)

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