Frage

Ich verwende ein VS 2008 Setup- und Bereitstellungsprojekt, um eine gemischte verwaltete / unwirksame Anwendung bereitzustellen. Ich hatte Probleme, Mixed-Mode-DLLs mithilfe der integrierten Registrierungseigenschaft ("vsdracom" aufzähliger Wert der Eigenschaft "Register" zu registrieren. stammt aus system.configuration.install.installer.) Ich bin mir sicher, dass diese Klasse ausgeführt wird und eine Reihe von Vorgängen erfolgreich installiert und durch Code in dieser Montage deinstalliert werden, einschließlich der Ausführung des Einstiegspunkts der DLL (UN) -Enteilung in einer Reihe von Montage .

Eine DLL registriert sich jedoch nicht erfolgreich. Es ist die einzige DLL, die von einigen umverteilbaren Versammlungen von Drittanbietern abhängt, die am GAC installiert werden möchten. Ich habe diese Baugruppen dank der integrierten Unterstützung für diese in den Setup- und Bereitstellungsprojekten von 2008 im GAC installiert, und ich weiß, dass dies funktioniert. Ich habe bestätigt, dass es geschieht, dass die benutzerdefinierte Aktion ausgeführt wird, bevor das Installationsprogramm die GAC -Installation ausführt.

Wütend. Meine Frage ist also, gibt es eine Möglichkeit, den Installateur zu zwingen, die GAC -Installation auszuführen, bevor die benutzerdefinierte Aktion ausgeführt wird? Gibt es eine Möglichkeit, die Eigenschaft "Zustand" der benutzerdefinierten Aktion zu verwenden, um dies zu tun? Wenn nicht, was ist meine beste Alternative? Erfassen Sie die Registrierungseinträge aus der DLL und fügen sie den Registrierungseinstellungen für das Installateur hinzu (mögen dies nicht, weil jemand in Zukunft neue Com -Server in die Klasse hinzufügt)? Verwenden Sie .NET -Code, um die Baugruppe manuell in den GAC zu installieren (wissen Sie noch nicht, wie das geht)?

Vielen Dank,

Dave

War es hilfreich?

Lösung

Die Setup -Projekte, die Sie in Visual Studio erstellen können, sind sehr begrenzt. Es ermöglicht nur, dass benutzerdefinierte Aktionen bei 4 Punkten geplant werden. MSI ermöglicht jedoch, dass benutzerdefinierte Aktionen zu jedem Zeitpunkt des Prozesses mit einigen Einschränkungen für das, was sie tun können, geplant werden.

Meine erste Lösung ist es, Visual Studio 2008 als Ihr Setup -Entwicklungstool zu verwenden. Das Visual Studio -Team hat versucht, die Komplexität der Erstellung einer Installation abstrahieren. Dabei haben sie jedoch auch die Flexibilität von MSI weggenommen. Wix, InstallShield oder Wise sind viel bessere Produkte für alles andere als einfache Installationen. Ich habe Visual Studio für unsere Installationen verwendet und es war zu viel Arbeit. Es gab immer eine weitere Problemumgehung, die implementiert und seine Nebenwirkungen behandelt werden mussten.

Wenn Sie die Technologie nicht wechseln können, müssen Sie lernen, wie Sie die resultierende MSI -Datei manuell ändern. In Ihrem Fall müssen Sie die Installexecutesequence -Tabelle ändern, http://msdn.microsoft.com/en-us/library/AA369500(Vs.85).aspx. Sie können dies manuell durch Orca tun, http://msdn.microsoft.com/en-us/library/aa370557(vs.85).aspx oder durch die MSI -API http://msdn.microsoft.com/en-us/library/aa372860(vs.85).aspx. Stellen Sie sicher, dass Sie Orca herunterladen und die Validierungsskripte mit Ihrer Installation ausführen. Die Skripte weisen auf zahlreiche Probleme hin, die Sie bei der Bereitstellung von Kundenmaschinen unzählige Stunden sparen.

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