Ich habe Probleme, meinen CI Build unter TeamCity zu verwenden. Ich habe ähnliche Projekte, die in Ordnung sind, also denke ich nicht, dass es ein TeamCity-Problem per se ist, aber ich habe mir das so sehr angeschaut, dass ich Code blind mache und ich befürchte, dass ich das Offensichtliche vermisse . Ich würde eine andere Perspektive schätzen.
Das Projekt, an dem ich gerade arbeite (ein ASCOM-Treiber), hat ein Wix-Setup-Projekt und eine verwaltete benutzerdefinierte Aktion. Die benutzerdefinierte Aktion verfügt über ein Komponententestprojekt, das MSpec verwendet. Das alles funktioniert gut auf meiner Workstation, die Tests laufen und passieren, alles gut. Auf TeamCity wird die Lösung nicht einmal kompiliert. Ich begrüße die Tatsache, dass TeamCity möglicherweise eine Schwachstelle in meinem Build hervorgehoben hat, aber ich verstehe nicht, was hier vor sich geht.
Was angezeigt wird ist, dass der Build eine der Projektausgaben (die benutzerdefinierte Wix-Aktion) während des Builds löscht, was bedeutet, dass ein nachfolgendes Projekt, das darauf verweist, nicht erstellt werden kann. Hier sind einige bearbeitete Highlights aus der Protokollausgabe:
Die Setup-Projekte beginnen mit dem Erstellen ...
%Vor%Dann löst es Verweise auf und bemerkt, dass das benutzerdefinierte Aktionsprojekt erstellt werden muss ...
%Vor%Dann wird das benutzerdefinierte Aktionsprojekt erstellt und die CA-Assembly wird gepackt und die Ausgabe in das Ausgabeverzeichnis kopiert ...
%Vor%Der CA-Build wurde abgeschlossen und der Setup-Build wird fortgesetzt:
%Vor%Jetzt ist hier, wo alles schief geht. Das Custom Action-Projekt versucht anschließend erneut zu erstellen und führt eine CoreClean-Aktion aus:
%Vor%
Ich kann nicht herausfinden, warum Dinge scheinbar auf dem Build-Server nicht in Ordnung sind. Dies alles wird in Visual Studio auf meiner Workstation erstellt. Irgendwelche Gedanken?
Setzen Sie teamcity.msbuild.generateWrappingScript auf false
Hier zu finden: MSBuild - Implementierungshinweise
Implementierungshinweise
MSBuild-Runner generiert ein MSBuild-Skript, das das Skript des Benutzers enthält. Dieses Skript wird verwendet, um von TeamCity bereitgestellte msbuild-Aufgaben hinzuzufügen. Ihr MSBuild-Skript wird mit dem & lt; Import & gt; Aufgabe. Wenn Sie eine Visual Studio-Lösungsdatei angegeben haben, wird sie von & lt; MSBuild & gt; Aufgabe. Um es zu deaktivieren, setzen Sie teamcity.msbuild.generateWrappingScript auf false.
Tags und Links teamcity build wix custom-action