Wie verwendet man das NuGet-Packet auf einem Buildserver?

Hallo,

Wir sind dabei die List&Label-Version in unserer Anwendung zu aktualisieren. Dabei würden wir gerne nun das NuGet-Packet verwenden, anstatt die .dll-Datei zu referenzieren. Dabei stelle ich nun fest, dass das NuGet-Packet Abhängigkeiten aus dem Redistribution-Ordner aus der List&Label-Installation in den C# Projekt-Ordner kopieren möchte. Auf den Rechnern, auf dem List&Label installiert ist, funktioniert es auch. Das Problem ist aber unser Buildserver, auf dem List&Label nicht installiert ist. Wir bekommen eine Warnung, dass keine Installation gefunden werden kann, was ja auch verständlich ist aber dann bricht der Buildprozess ab, weil die zu kopierenden Dateien fehlen.

Welche Schritte müssen denn gemacht werden, damit der Buildprozess erfolgreich durchlaufen werden kann oder können wir in so einem Fall das NuGet-Packet nicht benutzen?

mfg
Julian Hirche

Die NuGet-Pakete enthalten tatsächlich nur die .NET Assemblies, die unmanaged dependencies werden aus der Installlation kopiert.

Mit der Professional- und Enterprise-Edition können Sie auf dem Buildserver eine Installation vornehmen und dann auch dort die NuGet-Packages nutzen.

Okay. Vielen Dank für die Antwort.

Dann werden wir es erstmal so machen, wie gehabt, indem wir nur die Assembly referenzieren.
Alles andere müssen wir dann mal schauen.

1 Like

Gibt es hier inzwischen elegantere Möglichkeiten? Wir nutzen Azure DevOps mit dessen Build Server. Bis auf List & Label können wir alle 3rd Party Produkte als Nugets nutzen. Installation von LL auf dem Build Server ist nicht wirklich eine Option in diesem Fall.

Leider hat sich an dieser Front noch nichts getan, es gilt weiterhin, dass die Module direkt deployed werden müssen.

Gibts schon irgendwelche Neuigkeiten auf der Front ?

Wir würden unsre Komponenten gerne sauber aufsetzen ohne, dass wir einen eigenen Buildserver brauchen.

Hallo,

bei unserem Projekt besteht auch die Notwendigkeit, Azure Devops Build Pipelines zu nutzen.
Besteht in der Version LL26 oder LL27 nun die Möglichkeit?

Hier hat sich bisher nichts geändert - das Package enthält lediglich die Assemblies, nicht die DLLs.

Sie können den Vorschlag gerne in der Idea Place-Kategorie als neue Idee zur Abstimmung stellen.

Vielen Dank :slight_smile: - für andere als Referenz: NuGet Deps useable in Buildserver

Ich verwende schon länger die Azure DevOps Build Pipeline zum bauen meiner List&Label Projekte. Die Sache ist im Prinzip ganz einfach zu lösen:

Ich habe mir ein eigenes Repo für die Redistribution Files angelegt. Dieses enhält ein Ordner Redistribution und darin die Ordner x86 bzw x64 analog der LL Installation. in meinem Fall habe ich dort nur die x64 Files liegen mit den selektierten Files die ich tatsächlich für den Build benötige.

In meiner Yaml-Build-Datei für mein eigentliches Server-Projekt checke ich noch zusätzlich dieses Repo mit den Redistribution-Files aus. Beim Build Prozess setze ich nun die Varable LLInstallPath als Build Parameter auf das Hauptverzeichnis des ausgecheckten Redistribution-Repos. Damit kann der Build Prozess die benötigten Dateien laden:

# LLInstallPath
llInstallPath: '$(Build.SourcesDirectory)/LLRedistribution/'

[...]

resources:
  repositories:
  - repository: ListLabelRedistribution
    type: github
    endpoint: 'YourEndpoint'
    name: yourcompany/LLRedistribution
	
[...]

steps:
    - checkout: ListLabelRedistribution

[...]

    - task: DotNetCoreCLI@2
      displayName: Build
      inputs:
        command: 'build'
        projects: $(projectPathServer)
        arguments: '--configuration $(buildConfiguration) --no-restore -p:LLInstallPath=$(llInstallPath)'

    - task: DotNetCoreCLI@2
      displayName: Publish
      inputs:
        command: 'publish'
        projects: $(projectPathServer)
        publishWebProjects: false
        arguments: '--configuration $(buildConfiguration) --no-restore --output $(build.artifactstagingdirectory) -p:LLInstallPath=$(llInstallPath)'
1 Like

Das ist ja eine ausgesprochen kreative Lösung :+1: - vielen Dank für’s Teilen!

Hallo zusammen,

gibt es da eigentlich schon einen Fortschritt nach 2 Jahren seitens Fa. Combit? Ein Build auf einem DevOps Server ist ja nun mal Standard bei vielen Unternehmen.

Der entsprechende Wunsch hier im Forum NuGet Deps useable in Buildserver ist seit zwei Versionen abgeschlossen. Die Enterprise-NuGet-Packages sind seitdem verfügbar. Es wird aber die Enterprise-Edition dafür benötigt, ansonsten müsste der Workaround verwendet werden.