2017-05-21 7 views
0

Ich habe eine Lösung mit Analyse-Service-Projekt und USQL-Projekt. Ich habe VS2015-Community auf meinem Computer installiert. Die Lösung baut perfekt auf meiner Maschine. Als nächstes möchte ich VSTS CI für meine Lösung konfigurieren. Ich habe versucht, das gehostete Mittel verwendet, aber das beschwert, dass es nicht Baugruppen wie unten finden:VSTS Private Agent VSBuild

  1. bauen kann nicht Obj \ x86 \ Entwicklung \ Model.asdatabase. Grund: konnte nicht geladen werden Datei oder Assembly 'Microsoft.AnalysisServices.AppLocal, Version = 14.0.0.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91'

  2. Fehler MSB4062: Die „Microsoft.Cosmos.ScopeStudio.VsExtension .CompilerTask.USqlCompilerTask "Task konnte nicht von der Assembly Microsoft.Cosmos.ScopeStudio.VsExtension.CompilerTask geladen werden. Die Datei 'Microsoft.Cosmos.ScopeStudio.VsExtension.CompilerTask' oder eine ihrer Abhängigkeiten konnte nicht geladen werden. Die angegebene Datei wurde vom System nicht gefunden. Bestätigen Sie, dass die Deklaration korrekt ist, dass die Assembly und alle zugehörigen Abhängigkeiten verfügbar sind und dass die Task eine öffentliche Klasse enthält, die Microsoft.Build.Framework.ITask implementiert.

glaubte ich, dies aufgrund der Tatsache sein könnte, die Mittel gehostet haben die Dienstprogramme/Konfigurationen nicht haben Analysedienst und usql Projekte zu bauen.
Also entschied ich mich, mein System als privaten VSTS-Agenten zu verwenden, um die Projekte zu erstellen, da alle Tools installiert wurden und die Lösung erfolgreich in Visual Studio erstellt wurde.
Aber selbst nachdem ich mein Gerät als Build Agent benutzt habe, zeigt es denselben Fehler. Ich verwende VSBuild.

Also meine Frage:

a. Warum stellt VSBuild kein gutes Build sicher, wenn es auf einem privaten Computer ausgeführt wird, der andernfalls ein Projekt von der installierten VS2015-Instanz erstellen kann?
Die Maschinenumgebung sollte bereits mit allen erforderlichen Tools/Bibliotheken und Konfigurationen eingerichtet werden, daher sollten diese kein Problem darstellen.

b. Wenn das Obige nicht funktioniert, dann allgemein, wie man einen privaten Agenten einrichtet, um Fälle zu behandeln, die nicht durch den vorweg gehosteten Agenten unterstützt werden?

c. Irgendwelche Hinweise, wie Sie diese Fehler beheben können, wenn Sie VSBuild verwenden?

Jede Hilfe wäre willkommen!

Antwort

0

Bitte Schwierigkeiten, das Problem mit folgenden Schritten Schießen:

  1. in VS 2015 auf dem lokalen Computer Erstellen Sie das Projekt, um sicherzustellen, dass es erfolgreich aufbauen können.
  2. Stellen Sie sicher, dass Sie den auf dem Computer für VSTS-Build konfigurierten privaten Agenten verwenden. Sie können die Überprüfung überprüfen, indem Sie das Buildprotokoll überprüfen und prüfen, ob der lokale Pfad für den privaten Agenten konfiguriert ist.
  3. In Visual Studio Build-Aufgabe stellen Sie bitte sicher, dass Sie die Visual Studio-Version VS 2015 verwenden.

enter image description here

+0

Entschuldigung für die Verzögerung, wie ich war schlecht stecken. Danke, ich habe die Details geprüft und sie sind korrekt eingerichtet, wie du es erwähnst. Tatsache ist, dass alle Projekte in Ordnung sind, außer für das Analyse-Service-Projekt und das usql-Projekt. Da ich VSBuild anstelle von MSBuild auf meinem privaten Agenten verwende, der auch als Visual Studio geladen wurde, erwartete ich, dass VSBuild Visual Studio Build intern auslöst - also sollte ein erfolgreicher Build auf Visual Studio einen erfolgreichen Build mit VSBuild sicherstellen. Aber es ist nicht so. Was ist der Wert für VSBuild gegenüber MSBuild? Ist es nicht erforderlich, Visual Studio auf dem Buildcomputer zu verwenden, wenn Sie VSBuild verwenden? –

0

Es tut mir Leid, dass zur Zeit kann der usqlproj nur innerhalb der Visual Studio-Umgebung aufgebaut werden. Standalone MSBuild wird noch nicht unterstützt.

Bevor wir eine praktikable Lösung in der Zukunft haben, ist die einzige Option hier, das U-SQL SDK zu verwenden, um das U-SQL-Skript direkt zu erstellen.

https://docs.microsoft.com/en-us/azure/data-lake-analytics/data-lake-analytics-u-sql-sdk

Vielen Dank, Yu Dong

+0

Danke für die Information. Ich habe das getestet. Entschuldigung, ich bin neu in USQL und hatte eine Frage vielleicht ein bisschen naiv. Wenn ich die USQL-Abfrage erstelle, sehe ich, dass der dahinter stehende Code in dll kompiliert und in den lokalen Datenseekatalog für die Umgebung registriert wird. Was genau passiert während dieses Builds? In unserem Fall verwenden wir keinen Backend-C# -Code, sondern nur einfaches USQL-Skript als Prozeduren. Wir haben ein Powershell-Skript entwickelt, das während der Veröffentlichungspipeline aufgerufen wird, um das Skript als Prozeduren im Zielkatalog bereitzustellen. In diesem Fall gibt es einen Wert für einen separaten Erstellungsschritt für das Skript? –

+0

Code hinter C# Code wird nur erstellt, wenn Sie eine "Klasse" Zeichenfolge im Code hinter der Quelldatei haben. Temporäre Assemblyregistrierung und anschließende Löschung werden verwendet, damit sie keine Spuren im lokalen Metadatenspeicher hinterlassen, wenn die Jobausführung erfolgreich war. –

+0

Danke für Ihre Antwort. Entschuldigung für die verspätete Bestätigung, da ich ein wenig mit anderen Ergebnissen beschäftigt war ... Ein paar Fragen - a) Gibt es trotzdem mehrere usql-Dateien auf einmal zu erstellen? Ich finde, dass das Argument -script eine Datei nach der anderen nimmt. b) Wieder zurück zur ursprünglichen Frage, da ich VSBuild anstelle von MSBuild verwende, erwartete ich, dass der Build erfolgreich ist, da er die gleiche Umgebung wie das Visual Studio-Setup auf dem Rechner für den Build verwenden würde. Für virtuelle VSTS-Agenten verwendet VSBuild unterhalb nicht die gleiche Umgebung wie die Visual Studio-Umgebung auf der Build-Maschine? –

Verwandte Themen