Um List & Label an Endanwender auszuliefern, müssen keine Module registriert und keine Dateien zwingend im Systemverzeichnis abgelegt werden. So kann Ihre Applikation beim Anwender mit einem einfachen Kopieren der Module (xcopy-Installation) installiert werden.
Vor der Auslieferung muss auf jeden Fall Ihr persönlicher Lizenzschlüssel in der LicensingInfo der Komponente eingetragen werden. List & Label bestimmt anhand dieses Schlüssels den Featureumfang entsprechend den Editionen (Standard, Professional oder Enterprise), der Ihrer Anwendung dann zur Verfügung steht. Ihren persönlichen Schlüssel finden Sie in der Datei "PersonalLicense.txt".
Zur Zusammenstellung der redistributierbaren Dateien steht der Redistributionsassistent zur Verfügung. In wenigen Schritten können Sie damit alle für Ihre Anwendung benötigten Dateien zusammenstellen und die Dateien direkt in das richtige Zielverzeichnis kopieren, ein ZIP-Archiv erstellen oder die Dateipfade für die weitere Batchverarbeitung kopieren. Den Redistributionsassistenten finden Sie im List & Label Installationsverzeichnis.
Auf GitHub finden Sie eine Einführung in die Bedienung von NuGet. Die List & Label Installation enthält NuGet Packages für die Offline-Nutzung. Sie werden in das Verzeichnis "..\Beispiele\Microsoft.NET\NuGet\" installiert und können einfach in Visual Studio verwendet werden:
Aber natürlich können die NuGet Packages auch direkt von NuGet.org selbst heruntergeladen werden.
Hinweise
Die List & Label NuGet Packages enthalten nur die ausgewählten .NET Assemblies. Während der Erstellung Ihres Projekts werden die unmanaged Module von List & Label aus dem Installationsverzeichnis "..\Redistribution\" in den Ausgabeordner der Anwendung kopiert und sind nicht Teil der NuGet Packages. Bitte beachten Sie daher bei der Aktualisierung der NuGet Packages, dass auch das entsprechende List & Label Service Pack installiert werden muss. Auf diese Weise passen dann die Versionen der unmanaged Bibliotheken zu den .NET Assemblies der NuGet Packages. In .NET-Systemarchitektur finden Sie weitere Details zu den .NET Assemblies und den unmanaged Modulen.
Enterprise Edition: Darüberhinaus stehen spezielle NuGet-Pakete für die List & Label Enterprise Edition zur Verfügung, die alle Module (.NET Assemblies und auch unmanaged Module) enthalten und keine List & Label Installation für das Deployment benötigen und somit für den Einsatz auf z. B. Build Servern wie Azure DevOps geeignet sind. Den persönlichen NuGet-Feed für die Verwendung z. B. im Visual Studio NuGet-Paket-Manager finden Sie in der Datei PersonalLicense.txt in Ihrer List & Label Installation. Bitte beachten Sie, dass Ihre List & Label Lizenz hierfür registriert sein muss. Bei der Verwendung dieser NuGet-Pakete auf einem Build Server benötigen Sie in der Regel eine nuget.config Datei (siehe nachfolgend), die im Verzeichnis der entsprechenden Projektdatei liegen muss, um festzulegen, woher die NuGet-Pakete bezogen werden sollen (weitere Informationen hierzu finden Sie unter nuget.config reference). Im Übrigen ist die Verwendung einer nuget.config Datei aus demselben Grund hilfreich, wenn Sie mehrere Paketquellen definiert haben, die List & Label NuGet-Pakete enthalten.
Im Unterverzeichnis "Redistribution" Ihrer List & Label Installation finden Sie alle zur Weitergabe freigegebenen Dateien. Normalerweise werden Sie alle Dateien (cm*.dll) und die Zusatzmodule (cm*.llx) verwenden, außerdem natürlich die Assembly die von Ihrer Anwendung referenziert wird und zumindest einen Satz Sprachdateien (cm*.lng). Für die 64-Bit-Variante verwenden Sie die Dateien aus dem x64-Unterverzeichnis (cx*.dll und cm*.dll).
Bei der Einrichtung von ClickOnce-Projekten ist die Angabe der benötigten Dateiabhängigkeiten notwendig. Da auch List & Label solche Dateiabhängigkeiten zum korrekten Ablauf voraussetzt, müssen diese entsprechend angegeben werden. Folgende Schritte sind dafür nötig:
1. Zunächst muss ein entsprechender Ordner erstellt werden, der die Abhängigkeiten enthält. Klicken Sie hierzu mit der rechten Maustaste im Solution Explorer auf das entsprechende Projekt und wählen den Eintrag "Add > New Folder". Nennen Sie diesen "LLFiles".
2. Nun müssen noch die eigentlichen Abhängigkeiten dem Projekt hinzugefügt werden. Auch hierfür klicken Sie bitte mit der rechten Maustaste im Solution Explorer auf den soeben erzeugten Folder und wählen den Eintrag "Add > Existing Item...". Im soeben geöffneten Dateiauswahldialog markieren Sie nun gemäss der Redist.txt alle Dateien die redistributiert werden müssen. Sie finden diese im Unterverzeichnis "Dokumentation" Ihrer Installation.
3. Markieren Sie jetzt alle hinzugefügten Dateien im Ordner und stellen die Eigenschaft "Build Action" auf "Content".
4. Als letzter Schritt muss noch angegeben werden, welche Dateien beim Installieren der Anwendung wo hinkopiert werden sollen. Hierzu ist das manuelle Bearbeiten der Projektdatei (*.csproj bzw. *.vbproj) mit einem Standard ANSI-Editor (z.B. Notepad) notwendig. Fügen Sie nun für jede Datei einen solchen PublishFile-Block hinzu. Dieser muss sich innerhalb des Project-Blocks und ItemGroup-Blocks befinden:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
...
<ItemGroup>
<PublishFile Include="LLFiles\cmLL30.dll">
<Visible>False</Visible>
<TargetPath>cmLL30.dll</TargetPath>
<PublishState>Include</PublishState>
<FileType>File</FileType>
</PublishFile>
<PublishFile Include="LLFiles\cmct30.dll">
<Visible>False</Visible>
<TargetPath>cmct30.dll</TargetPath>
<PublishState>Include</PublishState>
<FileType>File</FileType>
</PublishFile>
<!-- Hier müssen noch die fehlenden Dateien eingetragen werden -->
</ItemGroup>
</Project>
Nach abschliessendem Speichern und neu Laden des Projekts, können Sie nun Ihre Anwendung per ClickOnce verteilen.