2016-06-11 4 views
0

Wenn eine stark benannte Assembly 'A' von privaten Assemblys 'B' und 'C' abhängt. Wenn ich 'gacutil.exe' verwende, um A in GAC zu installieren, was passiert dann mit B und C? Ich konnte sie nicht im Ordner im GAC-Verzeichnis sehen. Wird es sich immer noch auf B und C beziehen, d. H. Wenn sich B und C vor dem Deployment im Debug-Ordner (im selben Verzeichnis von A) befinden, wird sich A nach der Installation von 'A' in GAC unbedingt auf B und C beziehen?Was passiert, wenn eine starke benannte Assembly, die von privaten Assemblys abhängt, in GAC installiert wird

Ordner Debug: -

A.dll 
    B.dll 
    C.dll 
    main.exe 

sagen, main.exe läuft perfekt ab und zu, dass ich es auf einem anderen Rechner installieren, wird main.exe nicht, wenn A nicht vorhanden ist, so dass ich auch installieren A in der GAC der Zielmaschine. Aber wie soll ich das machen? Wenn ich Gacutil verwende, werden B und C nicht in das Verzeichnis von A in GAC kopiert?

Antwort

0

Es ist absolut zulässig, Assemblys zu haben, die von anderen zu installierenden Assemblys abhängig sind (A im GAC, Abhängigkeiten werden entweder per App geladen oder gar nicht). I.e. A kann in gewisser Weise (oder automatisch) Funktionen deaktivieren, wenn referenzierte Assemblys nicht geladen werden können.

Wenn Sie wissen, dass alle 3 Baugruppen im GAC installiert werden sollen, ist es Ihre Verantwortung, dies über Ihre Einrichtung zu tun.

Beachten Sie, dass GacUtil kein Tool ist, das erneut verteilt werden kann - selbst wenn es Ihnen bei der lokalen Installation nicht hilft (da es Abhängigkeiten nicht automatisch installiert), hilft es Ihnen nicht bei der Installation auf anderen Rechnern (vorausgesetzt, Sie interessieren sich für Regeln)). Siehe What's the 'correct' way of registering/installing an Assembly to the GAC?

Verwandte Themen