Gebäude C++ - Projekt auf einem PC mit Windows SDK 7.1 aber ohne VS2010

Ich habe ein C++ - Projekt (eine Art Konsole 32-bit-appplication) entwickelt, in VS2010, die baut gerade gut auf meinem PC (Windows 7 32-bit). Mein PC hat Microsoft SDK 7.0 A installiert, ich denke, das kommt gebündelt mit VS2010.
Ich versuche, das Projekt auf einem build-server, die nicht über Visual Studio installiert - nur Microsoft SDK 7.1 ist vorhanden.
Ich versuche, das Projekt mit Hilfe von msbuild (dieses wird schließlich die Aufgabe, für TeamCity - runner), und auf dem build-server bekomme ich folgenden Fehler (das ausführliche Protokoll wird zur Verfügung gestellt):

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]

Ich nehme an, das Problem bezieht sich auf die Unfähigkeit von msbuild finden Sie Microsoft SDK installiert ist in "E:\Program Files\Microsoft SDKs\Windows\v7.1".

Gibt es einige Ratschläge, wie man diesem Problem finden Sie auf der Web:

  1. Kopieren Sie einen Teil registry unter HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1 zu HKCU (siehe WindowsSdkDir nicht richtig eingestellt ist, in Visual Studio 2008?). Ich habe nicht versucht, diese Umgehungsmöglichkeit, da wie es aussieht zu hässlich, und der build-Prozess läuft mit SYSTEM-Konto-Anmeldeinformationen.
  2. Pass WindowsSDKDir als extra Parameter an MSBuild (wie vorgeschlagen in TeamCity und MSBuild Macken #1).
  3. Tweaking VCProjectEngine.dll.config.xml wie vorgeschlagen, in der Antwort zu Einbeziehen von Suchpfaden in TeamCity build-Konfigurationen (ich habe nicht gefunden, eine solche Datei auf dem PC mit dem Windows SDK).
  4. Ändern Sie die Plattform-Tools in das Projekt Eigenschaften wie vorgeschlagen, die Antwort zu WindowsSdkDir nicht richtig eingestellt ist, in Visual Studio 2010 (ich bezweifle, dass dies helfen wird, weil mein PC nicht über Windows SDK 7.1 installiert).

Eigentlich beim kompilieren mit CL.EXE geht alles in Ordnung (da habe ich INCLUDE und LIB definierten Variablen), so wäre es eine Abhilfe, um die Kraft msbuild verwenden/übergabe der Umgebungsvariablen...

Gibt es ähnliche Probleme:

Sowieso hat jemand gelungen, mit dem Aufbau Visual C++ - 2010-Projekte, die auf einem PC mit Windows SDK installiert?

InformationsquelleAutor AntonK | 2011-12-26

Schreibe einen Kommentar