3

(dies ist ein .net-Build-Server)Sollte ich ein SDK auf dem Build-Server installieren?

ich die folgende Fehlermeldung erhalten:

c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(1679,9): error MSB3091: Task failed because "LC.exe" was not found, or the .NET Framework SDK v2.0 is not installed. 

The task is looking for "LC.exe" in the "bin" subdirectory beneath the location specified in the SDKInstallRootv2.0 value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework. 

You may be able to solve the problem by doing one of the following: 

1.) Install the .NET Framework SDK v2.0. 

2.) Manually set the above registry key to the correct location. 3.) Pass the correct location into the "ToolPath" parameter of the task. 

Dies liegt daran, dass wir eine Komponente verwenden, die LIC.exe zu kompilieren erfordert.

jetzt kann ich das Problem lösen, indem sie auf dem Build-Server der neuesten Microsoft SDK installieren, aber ich dachte, das ganze Punkt eines Build-Server ist nicht Ihre dev Tools darauf installiert haben. Ich glaube, ich kann dies wahrscheinlich lösen, aber nicht nach einiger Arbeit, einige Dinge herauszufinden (wie diese Jungs haben)

http://richardsbraindump.blogspot.com/2009/07/some-teambuild-fun-and-games.html

sollte ich das SDK installieren? und noch wichtiger:

Was ist der Hauptzweck eines Buildservers?

Antwort

4

Der beste Weg, dies zu tun wäre, alles zu speichern, was benötigt wird, um Builds in der Quellcodeverwaltung zu erstellen. Wenn Sie das tun, müssen Sie nicht alle Build-Server durchlaufen, wenn Ihre Build-Kette aktualisiert wird. Dies geschieht automatisch. Ein weiterer Vorteil ist, dass Sie in der Zeit zurückgehen können und immer noch in der Lage sind, alles zu erstellen, ohne dass Sie all Ihre alten CDs durchsuchen müssen, um die Tools zu finden, die Sie benötigen, um alte Versionen Ihres Produkts zu erstellen.

Dies ist jedoch möglicherweise nicht für alle Build-Tools möglich. Zum Beispiel haben wir versucht, es mit Visual Studio 2005 zu machen, aber wir haben seltsame intermittierende pdb-Fehler von mspdbsrv bekommen, wenn wir aus einer nicht installierten Toolkette gebaut haben. Leider haben alle unsere Build-Server alle VS2005 installiert (aber nicht die PS3-Toolkette, die wirklich sehr nett ist, da sie ziemlich oft aktualisiert wird).

Grüße,

Sebastiaan

+0

Sie machen PS3-Entwicklung. Cool. Wie bist du dazu gekommen? Sind die Compiler und Bibliotheken öffentlich verfügbar oder müssen Sie Verträge mit Sony abschließen? –

+0

Ich stimme zu. Ich glaube wirklich, dass Sie alle Werkzeuge für den Build in Source Control behalten müssen. Wenn Sie die Tools in der Quelle belassen, erhält das Projekt eine Robustheit, die Chaos verhindert, wenn die Tools auf eine neue Version aktualisiert werden ! MS macht es manchmal schwierig (wie sein Paradigma mit LC.exe erfordert einen reg-Eintrag), aber das kann in einem Build-Skript erledigt werden, und ist definitiv die Zeit verbrachte Skripting wert, anstatt zu erziehen und zu pflegen ein separater Unit Test Server – KevinDeus

+0

um nicht zu sagen, dass separate Testserver manchmal nicht erforderlich sind! aber es sieht in den meisten Situationen sicher aus, dass ein minimales Toolset (wie * nur * die Software zum Ausführen des Builds) die Dinge einfach hält gibt Ihnen mehr Möglichkeiten. – KevinDeus

8

Der Hauptzweck des Buildservers besteht darin, Code zu erstellen. Alles, was zum Erstellen des Codes benötigt wird, muss sich auf dem Build-Server befinden.

3

Ich würde sagen, ein Build-Server muss alles haben, um zu bauen; Auf einem TEST-Server sind möglicherweise keine SDKs installiert.

+0

Dies würde einen Sinn auch, machen wir aber Ccnet verwenden, die zusammen mit dem Build NUnit Tests ausführt. (Wenn die Tests bestanden haben, dann gilt das auch für den Build) Meinst du eine Art manueller Testserver? – KevinDeus

+0

Verschiedene Orte nennen es verschiedene Namen - Test, Akzeptanz. Eine Umgebung, die der Produktion sehr nahe kommt, um sicherzustellen, dass das System (einschließlich seiner Installation) ohne unterstützendes Tool oder SDK funktioniert. NUnit-Tests wären in dieser Umgebung nicht ausreichend, aber ein Front-End-Test vielleicht (wie zB Canoo WebTest) –

6

Ihr Build-Server hat, um alle Ihre Build/dev-Tools/Bibliotheken darauf zu haben. So wird es den Build machen.

Also ja, installieren Sie das SDK.

+0

Ja, das scheint etwas Sinn zu machen, aber wie geht man dann mit dem alten "No errors on the dev box" um , aber es gibt Fehler in der Deployment-Box "Problem? Es scheint mir, dass in diesem Fall, dass Sie diese Philosophie verwenden, dass Sie nur auf eine andere Maschine neben Ihrer eigenen bauen möchten. – KevinDeus

+0

Was passiert auch, wenn Sie Ihr Toolset aufrüsten und einige Ihrer Builds kaputt machen (wir haben> 20 davon)? – KevinDeus

+3

Der Punkt eines Build-Servers besteht darin, die Build-Umgebung konstant zu halten. Entwickler-PCs ändern sich häufig und haben unterschiedliche Bibliotheksversionen. Mit einem Build-PC wissen Sie, dass Ihre Builds immer gegen die richtigen Bibliotheken und Compiler sind. Wenn Sie überprüfen möchten, ob Ihre Builds ordnungsgemäß in einer Nicht-Entwicklungsumgebung ausgeführt werden, müssen Sie alle Komponententests auf einem anderen Computer durchführen. –

Verwandte Themen