Archiv der Kategorie: Kleine Tipps

Lästiger Fehler bei VS 2015 mit einer einfachen Lösung

Folgende Fehlermeldung trat „auf einmal“ auf und hielt sich hartnäckig:


install-package : An error occurred while retrieving package metadata for ‚Microsoft.Identity.Client.1.1.2-preview0008‘ from source ‚C:\Users\Administrator\documents\visual
studio 2015\Projects\AzureADTest\packages‘.
In Zeile:1 Zeichen:1
+ install-package microsoft.graph
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Install-Package], Exception
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Die Lösung war einfach und im Grunde naheliegend. Nach Löschen der packages.config-Datei war der Spuk vorbei und es ließe sich wieder Packages installieren.

Word-Dokumente als Markdown speichern – mit Pandoc und einem kleinen VBA-Makro

Markdown ist eine attraktive Alternative zu HTML, da es sich auf das Wesentliche beschränkt: Die Auszeichnung von Textdokumenten ohne Extras und Formalitäten.

Auch für Buchautoren und allgemein für Autoren technischer Dokumentation ist Markdown eine Alternative. Das macht z.B. die Dokumentation auf GitHub eindrucksvoll deutlich.

Auch wenn man Markdown mit jedem Editor schreiben kann, z.B. auch mit Visual Studio Code, die meisten Autoren schreiben nach wie vor mit Word (Winword). Da Word in der Version 2016 Markdown nicht als Format anbietet (ich bin mir sicher, dass dies mit einer kommenden Version nachgeholt wird), ist aktuell noch etwas Bastelarbeit erforderlich.

Am einfachsten ginge es mit dem Word-Add-In Writage, das als Msi-Datei heruntergeladen und als klassisches COM-Add-In registriert wird. Die Erweiterung befindet sich offenbar immer noch in der Entwicklung. Aktuell ist sie daher kostenlos, sollte es irgendwann eine Version 1.0 geben, könnte sich das eventuell ändern. Writage verwendet den universellen Dokumentkonverter Pandoc, von dem noch die Rede sein wird. Wurde Writage installiert, sollte beim Abspeichern eines Dokuments Markdown als weiteres Format angeboten werden.

Leider hat die Installation bei mir nicht funktioniert, auch wenn sie glatt durchlief. Ein Abspeichern im Markdown-Format war nicht möglich. Das COM-Add-In wurde zwar registriert, aber offenbar kein Programm eingetragen, so dass auch nichts gestartet werden konnte.

Anstatt mich auf die Fehlersuche zu begeben habe ich ein kleines VBA-Makro erstellt, was nichts anderes macht als das aktuelle Dokument mit dem vielseitigen Dokumentkonvertierer Pandoc.exe zu konvertieren. Damit das Makro funktioniert, muss die Windows-Version von Pandoc zunächst von der folgenden Webseite heruntergeladen werden:

https://pandoc.org

Auf der Webseite gibt es zahlreiche Beispiele für den Aufruf von Pandoc in der Befehlszeile.

Das folgende Makro geht weiterhin davon aus, dass sich Pandoc.exe im Verzeichnis C:\Program Files (x86)\Pandoc befindet.

Die Idee ist, dass aus dem Dateinamen des aktuellen Word-Dokuments der Name der Md-Datei gebildet wird, die im selben Verzeichnis abgespeichert wird. War die Konvertierung erfolgreich, wird eine Meldung ausgegeben.

Wer VBA kennt, weiß, dass diese „Programmiersprache“ ihre Eigenheiten besitzt. Aber man kommt zum Ziel und darauf kommt es an. Man darf sich lediglich noicht von diversen Eigenheiten davon abbringen lassen oder gar entnervt aufgeben (auch zu VBA enthält Stackoverflow jede Menge Fragen mit teilweise sehr ausführlichen Antworten – ehrlich gesagt, sehr viel einfacher kann bei SO nichts für seine Reputation tun;)

Das folgende kleine Makro konvertiert das aktuelle Dokument per Paradoc in das Md-Format. Es wird in ein Modul eingegeben, das zur Dokumentvorlagendatei hinzugefügt wurde.

Tipp: Visual Studio das Speichern von Textdateien im UTF-8-Format abgewöhnen

Visual Studio hat auch in der 2015-Version die Angewohnheit Textdateien im UTF-8-Format zu speichern und den aus drei Bytes EF, BB und BF bestehenden BOM (Byte Ordering Mark) voranzustellen. Während sich bei Quelltextdateien über Datei -> Speichern untern auch die Codierung einstellen lässt, habe ich diese Option für Textdateien, die Teil eines Projekts sind, nicht gefunden.

Eine genial einfache Lösung ist ein kleines Add-In, das automatisch vor dem Speichern einer Textdatei aktiv wird und dafür sorgt, dass die BOM-Bytes nicht geschrieben werden. Das Add-In gibt es unter der folgenden Adresse:

https://vlasovstudio.com/fix-file-encoding/

Nach der Installation der Erweiterung muss über Extras -> Optionen -> Fix File Encoding eingestellt werden, für welche Erweiterungen die Anpassung vorgenommen werden soll. Voreingestellt sind die Erweiterung Html und Htm. Sollen z.B. auch CSV-Dateien berücksichtigt werden, muss der kleine Regex lediglich um ein | erweitert werden, wobei für die Erweiterung steht.

Fix File Encofing-Add In kümmert sich darum, dass bei Textdateien kein BOM-Header vorangestellt wird