La construction projet de C++ sur un PC avec Windows SDK 7.1 mais sans VS2010

J'ai un projet C++ (une sorte de console 32-bits le montage de dossier) développé dans VS2010, qui s'appuie très bien sur mon PC (Windows 7 32-bit). Mon PC a kit de développement Microsoft 7.0 A installé, ce qui je pense est livré avec VS2010.

J'essaie de construire le projet sur un serveur de build, qui n'ont pas de Visual Studio est installé uniquement Microsoft SDK 7.1 est présente.

J'essaie de construire le projet avec l'aide de msbuild (ce qui finira par devenir la tâche de TeamCity runner), et sur le serveur de build je reçois des messages d'erreur suivants (le journal détaillé est fourni):

Project "E:\win\core.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
Building solution configuration "Debug|Win32".
Project "E:\win\core.sln" (1) is building "E:\win\core_unittests.vcxproj" (2) on node 1 (default targets).
Project "E:\win\core_unittests.vcxproj" (2) is building "E:\cpptest\win\cpptest.vcxproj" (3) on node 1 (default targets).
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.Targets(847,9): warning MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.0" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [E:\cpptest\win\cpptest.vcxproj]
C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(297,5): warning MSB8003: Could not find WindowsSDKDir variable from the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number. [E:\win\cpptest.vcxproj]
InitializeBuildStatus:
Touching "E:\cpptest\win\..\..\..\out\Debug\cpptest\cpptest.unsuccessfulbuild".
ClCompile:
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin\CL.exe /c /ZI /nologo /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _LIB /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MTd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Fo"E:\cpptest\win\..\..\..\out\Debug\cpptest\\" /Fd"E:\cpptest\win\..\..\..\out\Debug\cpptest\vc100.pdb" /Gd /TP /analyze- /errorReport:queue ../missing.cpp
missing.cpp
e:\cpptest\missing.cpp(36): fatal error C1083: Cannot open include file: 'windows.h': No such file or directory [E:\cpptest\win\cpptest.vcxproj]

Je suppose que le problème est lié à l'incapacité de msbuild pour trouver des kit de développement Microsoft, qui est installé dans "E:\Program Files\Microsoft SDKs\Windows\v7.1".

Il y a quelques conseils comment gérer ce problème disponible sur le Web:

  1. De copier une partie du registre en vertu de l' HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1 à HKCU (voir WindowsSdkDir n'est pas définie correctement dans Visual Studio 2008?). Je n'ai pas essayé cette solution de contournement, car comme il a l'air trop moche, et que le processus est exécuté avec le SYSTÈME d'identification de compte.
  2. Passer WindowsSDKDir comme un des paramètres supplémentaires pour MSBuild (comme proposé dans TeamCity et MSBuild Bizarreries #1).
  3. Peaufiner VCProjectEngine.dll.config.xml comme proposé dans le réponse à Inclure les Chemins de Recherche dans TeamCity construire des Configurations (je n'ai pas trouvé ce fichier sur le PC avec Windows SDK).
  4. Changement de la plate-forme d'outils dans les propriétés du projet proposé dans le la réponse à WindowsSdkDir n'est pas définie correctement dans Visual Studio 2010 (je doute que cela va les aider, parce que mon PC ne dispose pas du SDK Windows 7.1 installé).

Fait lors de la compilation avec CL.EXE tout va bien (parce que j'ai INCLUDE et LIB variables définies), ce serait une solution pour forcer msbuild d'utilisation/passer les variables d'environnement...

Il y a des problèmes similaires:

De toute façon quelqu'un a réussi avec la construction de Visual C++ 2010 projets sur un PC avec Windows SDK installé?

InformationsquelleAutor AntonK | 2011-12-26