2009-06-17 9 views
0

Ich benutze VS2005 (habe nicht nach 2008 verschoben, weil ich noch einige Legacy-Tools verwende) und habe eine Frage über die Art, wie Projektreferenzen funktionieren.VS2005 lädt Projektreferenzen von GAC

Wenn ich einen Projektverweis auf ein Projekt mache, das im GAC implementiert wurde, verwendet VS die Assembly im GAC. Das ist ärgerlich, wenn ich älteren Code in der GACed-Assembly habe und Codeänderungen durchführe und schnelle Tests für sie durchführe - ich muss entweder den neuen Code jedes Mal neu erstellen oder die Assembly aus dem GAC entfernen, damit VS sie nicht bekommt von dort.

Gibt es eine Möglichkeit, dieses Verhalten zu besiegen?

Antwort

0

Der beste Weg ist ein zweistufiger Prozess.

1.) Aktualisieren Sie in Ihrer GAC'ed DLL die Nebenversionsnummer. (1.0 bis 1.1) 2.) Aktualisieren Sie den Projektverweis, um lokal zu kopieren, und verwenden Sie die neue Versionsnummer.

Dieses "SOLLTE" funktioniert, aber mit dem GAC ist es nicht immer 100%.

Sie könnten den Weg einer Richtliniendatei gehen, um das Laden des GAC zu stoppen .... aber das wird viel komplexer.

+0

Danke, ich dachte, es hätte mit der Versionierung zu tun. Solange Local kopieren wahr ist, wird VS immer die neueste Version verwenden, die es finden kann. Es sieht so aus, als ob es die gleiche Versionsnummer in der GAC und lokal findet, es verwendet nur die in der GAC. –

+0

Nick - Ich werde noch einen Schraubenschlüssel in die Arbeit werfen ... wenn du eine Policy-Datei an Ort und Stelle hast, die alle aus dem Fenster gehen ..... –

0

Kopieren Sie den Verweis lokal.

+0

Dies scheint nicht zu funktionieren. Ich räumte das Verzeichnis bin aus, setzte Local Copy auf true, baute es neu und bestätigte, dass sich die referenzierte Assembly zusammen mit der Projektassembly im Verzeichnis bin/Debug befand. Die referenzierte Assembly wird weiterhin aus dem GAC geladen. –

1

Können Sie nicht einfach die Referenz ändern und direkt auf die DLL zeigen? Besser noch, wenn Sie Ihre DLL ändern, verwenden Sie das Projekt als Referenz anstelle der GAC-DLL?

+0

Das Projekt wird direkt referenziert. Würde man direkt auf die DLL zeigen, würde das den Sinn haben. –