none
Standarf für "Lokale Kopie" bei Referenzen setzen RRS feed

  • Frage

  • Hallo

    Gibt es eine Möglichkeit, dass neu hinzugefügte Referenzen in ein VS-Projekt automatisch bei "Lokale Kopie" false gesetzt haben?

    Wir müssen das immer manuell machen was öfters vergessen wird.

     

    Gruss Christoph

    Sonntag, 19. September 2010 12:54

Antworten

  • Hallo

    Die DLL's liegen nicht im GAC und kommen auch nicht direkt aus einen Projekt in der gleichen Solution sondern liegen alle in einem Verzeichnis(z.B. auch externe Komponenten für zippen,...).

    Wenn es jetzt in diesen Ordner neue Dateien gibt, welche z.B. auch neue DB-Felder benötigen und diese in das Projekt-Bin-Verzeichnis beim erzeugen kopiert werden(Erzeugen der Projekte geht direkt auf die bin-Verzeichnisse) gibt es im Projekt ein Problem, weil die Spalte fehlt. Ich möchte diese neue Spalte/Funktion aber noch gar nicht haben und weiterhin mit der DLL welche bereits früher direkt ins bin-Verzeichnis kopiert wurde arbeiten.

    Daher setzt ich das auf false, damit die neue DLL nicht kopiert wird.

    Aber da das anscheinend nicht vorgegeben werden kann, müssen wir das so weiterhin manuell machen.

     

    Gruss Christoph

     

    • Als Antwort markiert chmav Montag, 20. September 2010 13:53
    Montag, 20. September 2010 13:49

Alle Antworten

  • Hallo Christoph,

    ehrlich gesagt Deine Frage verstehe ich nicht ganz. Das Feld Lokale Kopie hat als Defaultwert: False

    Schöne Grüße

    Oliver

    Sonntag, 19. September 2010 14:03
  • Hallo Christoph,

    Lokale Kopie (CopyLocal) wird für Assemblies aus dem globalen Assemby-Cache auf false gesetzt,
    siehe Projektverweise für eine detaillierte Beschreibung.

    Gruß Elmar

    Sonntag, 19. September 2010 14:09
  • Hallo Oliver

    Bei mir kommt immer true, wenn ich auf dem Projekt rechte Maustaste, dann Verweis hinzufügen auswähle und eine DLL auswähle.

    Das würde doch bedeuten, dass man das irgendwo einstellen kan?!

    Gruss Christoph

    Sonntag, 19. September 2010 15:05
  • Hallo Christoph,

    das Verhalten hängt davon ab, siehe Link im vorherigen Beitrag,
    um was für eine Assembly es sich dabei handelt.

    Gruß Elmar

    Montag, 20. September 2010 08:42
  • Hallo Elmar

    Dann nehme ich an, dass man dieses Verhalten nicht ändern kann?

    Gruss Christoph

    Montag, 20. September 2010 10:51
  • Hallo Christoph,

    das Verhalten an sich nicht, dafür gibt es Gründe, die dort auch erläutert werden.

    Anhand Deiner sehr mageren Informationen lässt sich nicht ermitteln,
    wieso es überhaupt anders funktionieren sollte...

    Gruß Elmar

    Montag, 20. September 2010 11:43
  • Hallo Elmar

    Wo werden diese Erläutert? Ich kann das ja auch manuell ändern(was wir immer machen müssen) und da spräche ja nichts dagegen, dass man fest vorgeben kann, dass es immer gleich so sein soll.

    Ich ging nicht davon aus, dass es hier hilfreich wäre, warum wir das immer umstellen. Die DLL's werden direkt in das bin-Verzeichnis einer Webanwendung erzeugt wo auch schon die DLL's vom kompletten Anwendung liegen. Jetzt kann es vorkommen, dass diese Framework-DLL's welche im bin-Verzeichnis und als Source für den Verweis aus einem anderen Verzeichnis dienen nicht 100% den gleichen Stand haben und so, wenn diese beim Verweis immer kopiert werden, zu Problemen führen kann.

    Aber es gibt ja Grundsätzlich einen Grund für diese Einstellung welche wir einfach nicht immer setzen möchten.

     

    Gruss Christoph

    Montag, 20. September 2010 13:12
  • Hallo Christoph,

    Hauptgrund: ausgenommen im GAC kann sich eine Assembly-Version jederzeit ändern.
    Was zu Fehlern bei der Übersetzung usw. führen kann, die auch in dem Abschnitt behandelt werden.

    Und so findest Du u. a. unter Projektverweise

    im Abschnitt: Verweise zwischen Projekten und Dateiverweise

    ... Sie sollten keine Dateiverweise auf Ausgaben eines anderen Projekts in derselben Projektmappe hinzufügen, da dies zu Kompilierungsfehlern führen kann. ...

    Auch unterscheidet Visual Studio zwischen Entwicklungszeit und Bereitstellung, aus
    Gewusst wie: Festlegen der Eigenschaft Lokale Kopie eines Verweises :

    Hinweis Hinweis

    Wenn Sie eine Anwendung bereitstellen oder kopieren, die einen Verweis auf eine im GAC
    registrierte benutzerdefinierte Komponente enthält, wird die Komponente unabhängig
    von der Einstellung Copy Local nicht mit der Anwendung bereitgestellt oder kopiert.
    ...

    IMHO solltet ihr eure Gründe für das Vorgehen überdenken...

    Gruß Elmar

    Montag, 20. September 2010 13:33
  • Hallo

    Die DLL's liegen nicht im GAC und kommen auch nicht direkt aus einen Projekt in der gleichen Solution sondern liegen alle in einem Verzeichnis(z.B. auch externe Komponenten für zippen,...).

    Wenn es jetzt in diesen Ordner neue Dateien gibt, welche z.B. auch neue DB-Felder benötigen und diese in das Projekt-Bin-Verzeichnis beim erzeugen kopiert werden(Erzeugen der Projekte geht direkt auf die bin-Verzeichnisse) gibt es im Projekt ein Problem, weil die Spalte fehlt. Ich möchte diese neue Spalte/Funktion aber noch gar nicht haben und weiterhin mit der DLL welche bereits früher direkt ins bin-Verzeichnis kopiert wurde arbeiten.

    Daher setzt ich das auf false, damit die neue DLL nicht kopiert wird.

    Aber da das anscheinend nicht vorgegeben werden kann, müssen wir das so weiterhin manuell machen.

     

    Gruss Christoph

     

    • Als Antwort markiert chmav Montag, 20. September 2010 13:53
    Montag, 20. September 2010 13:49