Ich habe eine .NET-Lösung mit einer verwalteten C++ Assembly Targeting .NET 3.5 erstellt mit VS2010. Der Befehl:So erstellen Sie ein VS2010-C++ - Projekt auf einem BuildServer
%windir%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe MyProject.sln
kompiliert die Lösung auf meinem Dev-Computer.
Auf meinem Build bekomme ich diesen Fehler:
Build FAILED.
"F:\CruiseControl.NET\Projects\MyProject\MyProject.sln" (default target) (1) -> "F:\CruiseControl.NET\Projects\MyProject\MyProject\MyProject.csproj" (default target) (2) -> "F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj" (default target) (3) ->
F:\CruiseControl.NET\Projects\MyProject\MyProjectMAPIHelper\MyProjectMAPIHelper.vcxproj(23,3): error MSB4019: The imported project "C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the<Import>
declaration is correct, and that the file exists on disk.0 Warning(s) 1 Error(s)
Auf meiner Dev-Maschine, die beanspruchte Datei
"C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props"
existiert. Auf meinem Build-Server nicht.
Wenn ich versuche, diese Dateien (und alle anderen im selben Verzeichnis) zu kopieren, sind andere Fehler aufgetreten. Das ist also der falsche Weg.
BEARBEITEN: andere Fehler bedeutet: Wenn ich die Datei "Microsoft.Cpp.Default.props" auf dem Build-Server kopieren, beansprucht MSBuild andere Dateien. Das zeigt mir, dass das Erstellen einer Kopie fehlender Dateien nicht das ist, was die Build-Umgebung erwartet. Ich bin auf der Suche nach einem MSI/was auch immer Paket, das ich auf meinem Build-Server installieren könnte und jedes C++ - Projekt erstellen wird. Das Installieren des SDK hat den Trick nicht ausgeführt. Oder ich habe während der SDK-Installation etwas falsch gemacht. Oder es ist nicht möglich, Managed C++ VS2010-Lösungen nur mit dem SDK zu kompilieren.
Ich glaube, dass "andere Fehler" nichts mit meinem Problem zu tun haben. Mein Problem ist: "Wie richte ich meine Build-Umgebung korrekt ein?" /EDIT
Was ich bisher getan:
- ich die neueste Win7 SDK installiert haben (http://blogs.msdn.com/b/windowssdk/archive/2010/05/25/released-windows-sdk-for-windows-7-and-net-framework-4.aspx)
- ich .net 3.5
- bin Targeting Ich habe versucht, mit dem Spielen Die Platform Toolset-Eigenschaft - aber es wurde gerade
- In meiner Lösung gibt es eine verwaltete C++ - Assembly (mein Problem)
- Ich verwende MSBuild 4.0, weil Die neuen VS2010-Projektdateien können nicht mit MSBuild 3.5
- kompiliert werden. Ich verwende CC.NET. Kompilierung schlägt in CC.NET und in der Befehlszeile fehl. Es sollte also kein CC.NET-Problem sein.
Gibt es irgendwelche Tipps und Tricks, wie mein Projekt richtig konfigurieren, auf meinem dev Maschine mit VS2010 und auf meinem Build-Server zu kompilieren? Gibt es noch etwas zu installieren (außer VS2010)?
Danke, Arthur
Frage: Sind Sie in CC.Net festgefahren oder haben Sie die Möglichkeit, auf etwas anderes zu aktualisieren? – Caladain
Ich glaube nicht, dass ich auf eine andere wechseln werde. Die Technologie der kontinuierlichen Integration wird alles verändern. Wie Arthur sagt, scheitert Build mit MSBuild. Dies scheint ein Problem mit .Net 4.0 zu sein, das stärker an SDK 7.0A gebunden ist, als es sein sollte. –
Ja, das stimmt. Kompilieren schlägt in der Befehlszeile mit MSBuild fehl. CC.NET ist noch nicht beteiligt. – Arthur