Frage

Ich habe eine Anwendung, die ein Gerät in einigen Fällen (d.h.er Drucker) verwendet wird. Im Grunde genommen in einem Büro dieser Drucker verwendet werden soll, und in einem anderen Büro dieser Drucker nicht verwendet werden.

Die Funktionalität den Drucker zu verwenden, wird in dem Anwendungscode sitzt, und die DLL, die mit dem Drucker kommunizieren werden im Code verwiesen. So dass die DLL sind Teil der Installation MSI-Paket.

Allerdings ist diese DLL kann während der Installation nicht registriert werden, wenn die Voraussetzung (ein Bündel von Treiber für den Drucker vom Hersteller als eine einzige Installation exe zur Verfügung gestellt) nicht installiert ist. Das Installationsprogramm für die Fahrer ist ca. 50 m Größe.

Ich will nicht eine zusätzliche 50M-Datei im Installationspaket für das Büro schließen, die niemals den Drucker verwenden. Was sind die möglichen Abhilfen für das Problem?

Letztendlich würde ich eine Option möchte irgendwie Registrierung dieser DLL während der Installation überspringen. Aber ich weiß nicht, wie man diesen Ansatz.

Ich denke, dass ich eine bedingte Kompilierung im Code haben könnte. Aber das eine erhebliche Menge an Arbeit erfordern würde, um vollständig den Code zu trennen, die vom Rest des Anwendungscodes auf diese Art von Drucker spricht.

Jede mögliche Lösungen?

War es hilfreich?

Lösung

Gruppe die DLLs, die bedingt installiert werden sollen / registriert eine Komponente. Dann in Ihrer MSI Component Tabelle, verwenden Sie die Spalte Bedingung auf abzuhängen Eigenschaft gesetzt werden. In Ihrem Locator Tabellen , konfigurieren Zeilen sucht die Voraussetzungen und setzen Sie die Eigenschaft.

Sie können mehr über diese erfahren durch das Lesen:

http://msdn.microsoft.com/ en-us / library / aa371564 (VS.85) aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top