Bereitstellung und Abhängigkeiten
Aktualisiert: November 2007
Die Bereitstellungstools von Visual Studio erkennen Abhängigkeiten automatisch und fügen sie dem Bereitstellungsprojekt hinzu, sobald diesem eine Projektausgabegruppe, eine Assembly oder ein Mergemodul hinzugefügt wird. In einigen Fällen können Abhängigkeiten allerdings nicht erkannt werden.
Tipp: |
---|
Es wird empfohlen, einem Bereitstellungsprojekt Assemblys nicht direkt, sondern in einer Projektausgabegruppe hinzuzufügen. Die Bereitstellungstools können Abhängigkeiten für eine Projektausgabegruppe einfacher erkennen. |
Bei Assemblys werden alle Abhängigkeiten von anderen Assemblys erkannt. Wenn die Assembly hingegen auf eine nicht verwaltete Komponente verweist (z. B. auf eine COM-DLL), werden die Abhängigkeiten für diese Komponente nicht erkannt. Ebenso weisen möglicherweise einem Bereitstellungsprojekt direkt hinzugefügte Dateien Abhängigkeiten auf, die nicht erkannt werden. In beiden Fällen sind die abhängigen Dateien i. d. R. für das Ausführen der Anwendung, jedoch nicht für das Ausführen des Installationsprogramms erforderlich.
Um diesem Problem vorzubeugen, müssen Sie zunächst den Typ der Abhängigkeit bestimmen und die entsprechende Aktion ausführen:
Möglicherweise liegt ein Verweis auf eine u. U. lediglich als Teil eines anderen Produkts installierte Komponente vor, z. B. auf das Webbrowser-Steuerelement (shdocvw.dll), das als Teil von Internet Explorer installiert wird.
In diesem Fall müssen Sie die Komponente aus dem Bereitstellungsprojekt ausschließen und eine Startbedingung hinzufügen, die auf dem Zielcomputer nach der Komponente sucht und die Installation verhindert, falls die Komponente nicht vorhanden ist. Vor der Installation der Anwendung muss der Endbenutzer das Produkt installieren, das die Komponente enthält.
Sie fügen möglicherweise eine nicht verwaltete Komponente hinzu, die nicht alle Abhängigkeiten dieser Komponente verfügbar macht. Beispielsweise enthält MFC (Microsoft Foundation Classes) keine lokalisierten Satellitendateien als Abhängigkeiten.
In diesem Fall müssen Sie sämtliche möglichen Abhängigkeiten ermitteln und in das Bereitstellungsprojekt einfügen. Die Liste der Abhängigkeiten finden Sie in der Dokumentation der Komponente, oder Sie müssen sich an den Autor der Komponente wenden.
Hinweis: Die meisten Abhängigkeitsprüfungstools wie Depends.exe finden nur früh gebundene Abhängigkeiten. Spät gebundene Abhängigkeiten werden erst zur Laufzeit erkannt.
Möglicherweise liegt ein Verweis auf eine Assembly vor, die von einer nicht verwalteten Komponente abhängig ist. Beispielsweise ist System.Data.dll von Microsoft Data Access-Komponenten (MDAC), Version 2.8, abhängig. Weitere Informationen hierzu finden Sie unter Gewusst wie: Hinzufügen einer Startbedingung für Microsoft Data Access Components.
Wenn Sie sicherstellen möchten, dass alle abhängigen Dateien installiert sind, fügen Sie ein Mergemodul hinzu, das die Komponente sowie ihre Abhängigkeiten enthält. Möglicherweise müssen Sie sich an den Autor der Komponente wenden, um in Erfahrung zu bringen, ob ein Mergemodul verfügbar ist. Auf der Microsoft-Website stehen Mergemodule für zahlreiche Microsoft-Komponenten zur Verfügung.
Wenn ein Mergemodul nicht verfügbar ist, können Sie eine Startbedingung hinzufügen, um bei der Installation nach der Komponente zu suchen und die Installation zu verhindern, wenn die Komponente nicht vorhanden ist.
Siehe auch
Aufgaben
Gewusst wie: Ausschließen von Dateien aus einer Projektausgabegruppe
Gewusst wie: Hinzufügen einer Startbedingung für Microsoft Data Access Components