MSBuild bietet eine Syntax zum Lesen von Werten (und Initialisieren von Buildeigenschaften) aus der Registrierung linked here und direct link here for VS2012.
Sie können mithilfe der folgenden Syntax System-Registry-Werte lesen, wo Hive die Registrierungsstruktur ist (zum Beispiel HKEY_LOCAL_MACHINE
), Key ist der Schlüssel Name, SubKey ist der Name für Unterschlüssel, und Wert ist der Wert des Unterschlüssels.
$(registry:Hive\MyKey\[email protected])
den Standardwert für Unterschlüssel zu erhalten, lassen Sie die Wert.
$(registry:Hive\MyKey\MySubKey)
Dieser Registrierungswert kann zum Initialisieren einer Build-Eigenschaft verwendet werden. Um zum Beispiel einer Build-Eigenschaft zu erstellen, die Visual Studio Web-Browser-Startseite steht, verwenden Sie diesen Code:
<PropertyGroup>
<VisualStudioWebBrowserHomePage>
$(registry:HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\[email protected])
</VisualStudioWebBrowserHomePage>
<PropertyGroup>
einmal lesen, können Sie die Build-Eigenschaft in dem Projekt zusätzlichen umfassen und Bibliothekspfade verwenden.
Zum Beispiel könnte es aussehen wie;
<PropertyGroup>
<ThirdPartySoftware_1>
$(registry:HKEY_CURRENT_USER\Software\ThirdPartySW_1\@InstalledLocation
</ThirdPartySoftware_1>
</PropertyGroup>
Und zu den Projektdateien hinzugefügt werden, oder über eine .props-Datei enthalten.
Von Ihrer Bearbeitung ... sind die Buildanforderungen nicht mit den Laufzeitanforderungen identisch. Das Problem beim Laden der Laufzeit wird gelöst, indem sichergestellt wird, dass sich der richtige Ordner im Pfad befindet. oder eher für Ihr Szenario, verteilen Sie die richtige DLL für die Zielplattform.
Als Alternative können Sie diese auch nehmen als eine Umgebung Setup Aufgabe auf (oder als Post Aufgabe an die Software von Drittanbietern bezogen installieren).
in den Software-Installationsordnern + \include\lib\x86
oder \include\lib\x64
der Installationspfad der Software von Drittanbietern wie erforderlich zu "Software-Installationsordner". Zum Beispiel (in den Systemumgebungsvariablen);
Sobald dies erledigt ist, kann dies in der IDE verwendet werden, um den Include-Pfad hinzuzufügen;
$(ThirdPartySoftware_1)\include
Und Bibliothekspfad;
$(ThirdPartySoftware_1)\include\lib\$(Platform)
Die oben annimmt, dass die$(Platform)
variable entweder x86
oder x64
ist. Manchmal generieren die Assistenten eine -Plattform für die x86
.
Gibt es eine Umgebungsvariable für die zu installierende Software? – Niall
Fragen Sie nach dem VS2012-Installationspfad oder Installationspfad für "andere Software"? Wenn der erste, dann verwenden Sie einfach die Umgebungsvariable 'VS120COMNTOOLS'. Um alle diese Variablen anzuzeigen, geben Sie im Befehlsinterpreter den Befehl 'set vs' ein. –
Leider brauche ich einen Linker zu einer anderen installierten Software, die diese libs/header-Dateien als API anbietet. Ich habe keine Umgebungsvariable mit dem Installationspfad, aber ich könnte das (zur Laufzeit) mit der Registrierung extrahieren. – Robin