Frage

Ich habe versucht, Teamcity 4.5 zu verwenden, um Builds von einem XNA-Projekt zu automatisieren, aber ich habe ein kleines Problem. Meine Projekte kompilieren korrekt unter Visual Studio 2008, aber nicht, wenn sie mit Teamcity als Erbauer zusammengestellt. Die Konfigurationsdatei verwendet die sln2008 Einstellung und Compilierung geht eine Weile gut, aber sobald es geht Texturen Kompilieren .png .xnb, bekomme ich folgende Fehlermeldung:

[11:28:41]: [Project "Content.contentproj" (default targets):] Content\head.png Building content threw InvalidOperationException: D3DERR_INVALIDCALL
at Microsoft.Xna.Framework.Content.Pipeline.CommonHelperFunctions.InitD3D()
at Microsoft.Xna.Framework.Content.Pipeline.TextureImporter.InitD3D()
at Microsoft.Xna.Framework.Content.Pipeline.TextureImporter.Import(String filename, ContentImporterContext context)
at Microsoft.Xna.Framework.Content.Pipeline.ContentImporter`1.Microsoft.Xna.Framework.Content.Pipeline.IContentImporter.Import(String filename, ContentImporterContext context)
at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.ImportAssetDirectly(BuildItem item, String importerName)
at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.ImportAsset(BuildItem item)
at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAssetWorker(BuildItem item)
at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAsset(BuildItem item)
at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.RunTheBuild()
at Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings settings, TimestampCache timestampCache, ITaskItem[] sourceAssets, String[]& outputContent, String[]& rebuiltContent, String[]& intermediates, Dictionary`2& dependencyTimestamps, KeyValuePair`2[]& warnings)
Inner exception: COMException: Exception from HRESULT: 0x8876086C

Ich habe keine Ideen, was ist der Grund dafür. Wie ich schon sagte, es ist in der Lage .fbx Modelle richtig sowie mein ContentPipeline Projekt und mein SharedContent Projekt (ein Teil der Lösung).

zu kompilieren

Was würde ich wirklich mag, ist, einige Hinweise zu dem, was die Ursache des Problems wäre (und, wenn möglich, eine Lösung für das Problem). Soweit ich verstehe, scheint es ein Problem mit der D3D Bibliothek. Ich will ihnen auch daran erinnern, dass diese ganze Lösung kompiliert unter Visual Studio 2008, so gibt es ein kleines Problem mit Teamcity, entweder ich habe nicht etwas zur Verfügung gestellt, oder etwas ist eigentlich falsch eingestellt.

War es hilfreich?

Lösung

Mit ziemlicher Sicherheit, Team-Stadt läuft es Prozess als lokales System in einem nicht-interaktiven Modus bauen ist, und nicht als Benutzer, die tatsächlich den Zugriff hat und die Fähigkeit, das Grafikgerät zu greifen. Ich weiß, ich hatte sogar Probleme durch eine Remote Desktop-Oberfläche zu Batch-Prozess Texturen versuchen, weil DirectX kann nicht das Grafikgerät greifen.

Die Lösung kann sein, ob Team-Stadt Sie bietet die Möglichkeit, verlangen, dass es Builder als angemeldeten Benutzer ausgeführt werden, nicht als lokales System oder als Dienst, obwohl ich nicht sagen kann, dass das ist eigentlich auch möglich in Team-Stadt.

Andere Tipps

Ich habe keine Lösung, aber ich habe darüber nachgedacht.

Der Fehler ist D3DERR_INVALIDCALL so denke ich das Gerät zu diesem Zeitpunkt aus irgendeinem Grund nicht verfügbar ist.

1) Haben die Maschinen das Build ausgeführt haben DirectX installiert / a Grafikkarte? Ich gehe davon aus ja seit XNA eine Karte mit Shadern erfordert aber Teamcity ist eine Build Verteilung so vielleicht ist es, ohne es auf einer Maschine läuft?

2) Vielleicht Teamcity verursacht auch zu viele Direct3D-Geräte auf der gleichen Maschine / Prozess (vollständige Vermutung) geschaffen werden?

die Modelldateien, die Sie richtig verwenden Texturen kompilieren oder sind sie nur Daten Geometrie? Ich habe ein den Inhalt Builder Gefühl Zugang zu DirectX braucht keine Modelle zu bauen, sondern macht für Texturdaten. Können Sie irgendetwas anderes, das den Zugriff Direct3D erfordert bauen? Können Sie ein Projekt mit Teamcity bauen, die nur eine Textur hat darin Inhaltsordner ist?

Ich bin mir nicht sicher, ob dies funktionieren würde, aber können Sie weitere Informationen erhalten, indem Sie DirectX im Debug-Modus ausgeführt wird und Blick auf den Ausgang?

Hoffe, das hilft ein wenig.

XNA und DirectX 9 benötigen einen Strom in Benutzer eingeloggt den Content-Ordner zu erstellen.

Die Lösung ist einfach, eine Build-Agent-Maschine (reale physikalische Maschine) mit dem Pre-reqs für XNA (VS2008, XNA Game Studio 3.0, usw.) und macht es beim Start lügt in einrichten, dann einen Skript ausführen das Team Server-Agent, wenn angemeldet (durch eine Verknüpfung zu dem Agenten läuft Skript in dem Startordner im Startmenü platzieren).

Auf diese Weise der Agent wie der lokale Benutzer ausgeführt wird und kann als normale bauen.

Ich habe dies getan und kann bestätigen, dass es funktioniert.

Leider einen alten Thread zu ziehen, aber ich habe laufe nur in das exakt gleiche Problem versucht TC zu bekommen, um mein XNA-Projekt auf Windows Server zu bauen und wollte andere helfen über das gleiche Problem kommen.

Ich habe gerade diesen Artikel und Blog, die wie eine vielversprechende Lösung aussieht: http://forums.create.msdn.com/forums/p/86699 /532976.aspx

&

http://blogs.msdn.com/ b / astebner / Archiv / 2011/07/07 / 10184338.aspx

Aaron besagt im Grunde, dass die neue Beta-Version von Win Phone SDK 7.1 Beta 2 XNA Game Studio 4.0 Beta 2 enthält, die jetzt können Sie Inhalte über den Inhalt Pipeline in den folgenden Arten von Konfigurationen erstellen:

Wenn der Bildschirm während eines Build gesperrt Wenn Sie einen Build auf einem Headless-Computer ausgeführt werden Wenn Sie einen Build von einem nicht-interaktiven Benutzerkonto ausgeführt werden

Aber es sieht aus wie es nur auf Vista laufen würde oder höher - hoffentlich, dass sollten Server schließen. Update: Nein leider wird es nicht installieren auf meinem Windows-Server: (

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top