Access-Anwendung mit dotnet build bauen
Sie bauen die Datenbank mit dotnet build – auf einem Entwicklungsrechner, in CI oder aus einer IDE – mit demselben
Ergebnis wie wkl-office build.
Lösungsüberblick
Die Projektdatei ist MSBuild-XML. Importieren Sie an ihrem Ende die Targets des SDK, erhält sie die Targets Build,
Rebuild, Clean, Check, Validate, Export und Roundtrip; die MSBuild-Tasks dahinter rufen dieselben Klassen auf wie
wkl-office.
| Befehl | Entspricht in wkl-office |
|---|---|
dotnet build Kunden.acproj | build (-p:WklAccessAccde=true oder false für --accde / --no-accde) |
dotnet build Kunden.acproj -t:Rebuild | rebuild |
dotnet build Kunden.acproj -t:Clean | entfernt build/<configuration>; setzt keine Projektsperre, führen Sie es daher nicht aus, während ein anderer Lauf am Projekt arbeitet |
dotnet msbuild Kunden.acproj -t:Check, -t:Validate, -t:Export, -t:Roundtrip | check, validate, export, roundtrip; -t:Export -p:WklAccessDatabaseToExport=<file> exportiert eine andere Datenbank, wie -d |
Umsetzung
Fügen Sie den Import als letztes Element in Kunden.acproj ein:
<Import Project="<folder of Wkl.Office.Sdk.MSBuild>\Wkl.Office.Sdk.targets" /> </Project>
dotnet build Kunden.acproj -p:Configuration=Release
Hinweise
- Jedes Problem wird zu einem MSBuild-Fehler oder einer MSBuild-Warnung mit Datei und Zeile und dem Code
WKLplus der Nummer seiner Phase (WKL001Quellen,WKL900ein von der Rundlaufprüfung gefundener Unterschied), sodass Editoren und CI-Protokolle es an seiner Stelle anzeigen. - Solange ein anderer Lauf am selben Projekt arbeitet (
wkl-officein einem Terminal, das Access-Add-In), schlägt ein Task sofort mit dem FehlerWKL010fehl und nennt diesen Lauf (Das Projekt ist belegt). - Eine Datei, die ein anderes Programm geöffnet hält (ein Editor, ein Virenscanner), lässt den Task mit dem Fehler
WKL011fehlschlagen; er nennt die Datei und das Programm (Eine Datei wird von einem anderen Programm verwendet). - Ein Abbruch des Builds (Strg+C, Beenden in einer IDE) fordert das verborgene Access des laufenden Schritts zum Schließen auf und beendet es nach 30 Sekunden; kein Access bleibt zurück.
- Die Tasks benötigen das MSBuild des .NET SDK (
dotnet build).msbuild.exevon Visual Studio läuft auf dem .NET Framework und kann sie nicht laden.
Was reproduzierbar ist
Dieselben Quellen, gebaut mit derselben SDK-Version, demselben Access (Version und Bitbreite), denselben registrierten
Verweisen, derselben ANSI-Codepage sowie derselben Vorlage und denselben Steuerelementbausteinen, ergeben eine
Datenbank mit denselben Objekten, Tabellen, Daten und Einstellungen, und ihr Export schreibt dieselben Quellen. Die
Datenbankdatei ist zwischen zwei Builds nicht bytegleich: Access vergibt jedem aus Text geladenen Objekt eine neue GUID
und speichert kompilierten Code und Zeitstempel. Legen Sie diese Eingaben auf Build-Rechnern fest; die Projektdatei
nennt keine SDK-Version. Jedes dotnet build baut die ganze Datenbank neu; die Targets sind nicht inkrementell. CI
benötigt eine interaktive Windows-Sitzung mit Access (siehe SDK installieren).