最近(几天前一切正常工作):Visual Studio 2012开始拒绝构建本机WP8项目。

今天,我从模板'Windows Phone Direct3D应用程序(仅限本机)创建了新的解决方案,以检查WP上的新创建的DLL是否会得到正确支持。我尝试编译这个项目,首先没有任何更改或其他参考 - VS生成的纯代码但是,它失败了给定错误。 我很了解它的意思和可能是可能的原因,但我无法理解,在这种情况下,它来自哪里。 奇怪的是:这只发生在'Win32'配置中,ARM编译Fine:

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);
.

microsoft.win32.cpp.user:

$(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
.

然而,原因在别处躺着。

所有路径都使用标准宏定义。其中一个是$(windowssdk8ppath),它用于构建包含/库路径。在我的系统上,这个宏被定义为

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

而不是

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

而这就是它。我不知道,何时或如何,出现此问题。Visual Studio Repeir Via Orginal Installer是足够的方法来修复一切。所有项目现在都没有任何问题编译。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top