C++ Visual Studio错误:LNK1104:无法打开文件';kernel32.lib';-仅在WP8项目/Win32版本中

C++ Visual Studio错误:LNK1104:无法打开文件';kernel32.lib';-仅在WP8项目/Win32版本中,c++,visual-studio-2012,windows-phone-8,linker-errors,windows-phone-8-sdk,C++,Visual Studio 2012,Windows Phone 8,Linker Errors,Windows Phone 8 Sdk,我最近遇到了这个问题(几天前一切正常):VisualStudio2012开始拒绝构建本机WP8项目 今天,我从模板“Windows Phone Direct3D应用程序(仅限本机)”创建了新的解决方案,以检查我新创建的DLL是否在WP上得到正确支持。我试图编译这个项目,首先没有任何更改或额外的引用——纯代码由VS生成。然而,它失败了,出现了给定的错误。 我很清楚这意味着什么,可能的原因是什么,但我不明白,霍韦弗,在这种情况下,这是从哪里来的。 奇怪的事情:这只发生在“Win32”配置中,ARM编

我最近遇到了这个问题(几天前一切正常):VisualStudio2012开始拒绝构建本机WP8项目

今天,我从模板“Windows Phone Direct3D应用程序(仅限本机)”创建了新的解决方案,以检查我新创建的DLL是否在WP上得到正确支持。我试图编译这个项目,首先没有任何更改或额外的引用——纯代码由VS生成。然而,它失败了,出现了给定的错误。 我很清楚这意味着什么,可能的原因是什么,但我不明白,霍韦弗,在这种情况下,这是从哪里来的。 奇怪的事情:这只发生在“Win32”配置中,ARM编译很好:

1>------ Build started: Project: PhoneDirect3DApp, Configuration: Debug ARM ------
.......

Build Summary
-------------
00:11.742 - Success - Debug ARM - PhoneDirect3DApp\PhoneDirect3DApp.vcxproj
但Win32没有:

1>------ Build started: Project: PhoneDirect3DApp, Configuration: Debug Win32 ------
.......
1>LINK : fatal error LNK1104: cannot open file 'kernel32.lib'

Build Summary
-------------
00:09.725 - Failed  - Debug Win32 - PhoneDirect3DApp\PhoneDirect3DApp.vcxproj
我的标准(本机C++/Win32)项目也能按预期工作(在Win32和x64平台目标中)

项目配置:(在两个平台中)

链接器::输入:

d3d11.lib;%(AdditionalDependencies)
链接器::忽略:

ole32.lib;%(IgnoreSpecificDefaultLibraries)
VC++目录:

Microsoft.ARM.Cpp.User:

$(WP80ToolSetPath)lib\arm;$(WindowsSDK_LibraryPath_ARM);
$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WP80ToolSetPath)lib\x86;$(WindowsSDK_LibraryPath_x86)
Microsoft.Win32.Cpp.User:

$(WP80ToolSetPath)lib\arm;$(WindowsSDK_LibraryPath_ARM);
$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WP80ToolSetPath)lib\x86;$(WindowsSDK_LibraryPath_x86)
你知道还有什么可能是错误的或配置不正确的吗?我已经没有主意了,我以前从未见过这样的事情


顺便说一句,我注意到了另一个变化:当我以前试图在ARM配置中编译WP8项目时,总是出现一个错误,说“不支持在桌面上构建ARM应用程序”(或者类似的东西)。现在ARM编译没有问题。正常吗?

最后,我找到了问题的原因:正如我所怀疑的,Visual Studio内部配置已被破坏

我完成了所有标准步骤,在LNK1104的情况下可以执行这些步骤,但是:

- kernel32.lib was in valid location - all include and library directories was correct - standard *.props files were attached to each project 而不是

C:\Program Files (x86)\Windows Kits\8.0

就这样。我不知道这个问题是何时、如何发生的。通过原始安装程序进行VisualStudio修复足以修复所有问题。所有项目现在都可以编译,没有任何问题。

也许那里的一些答案可能会有帮助。它说找不到文件,所以检查它是否还在那里。C:\ProgramFiles(x86)\Windows Kits\8.0\Lib\win8\um\x86\kernel32.libChecked。正如我所说,我已经完成了所有的基本检查——没有结果。然而,我开始检查VS build environment使用的内部宏,似乎有些东西可能被破坏了。我将提供反馈,以防解决问题。请参阅安迪·拉什顿的答案进行解释