Laden...

System.Windows.Interactivity.dll wird blockiert beim compilieren

Erstellt von MillionsterNutzer vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.422 Views
M
MillionsterNutzer Themenstarter:in
235 Beiträge seit 2005
vor 8 Jahren
System.Windows.Interactivity.dll wird blockiert beim compilieren

Hi!

Ich habe aktuell zwei Solutions die ihre Assemblies in das gleiche Ausgabeverzeichnis hinein erstellen. Bei der ersten Solution geht es um einen Windowsdienst bei der zweiten um eine GUI die unter anderem auch mit dem Dienst kommuniziert.

Während das in den letzten Wochen meist gut funktioniert hat, bekomme ich in den letzten Tagen beim erstellen der GUI-Solution nun immer die Meldung:

Fehlermeldung:
Error 15 Could not copy "C:\Libraries\baseline\Source\Common\packages\MvvmLightLibs.4.2.30.0\lib\net45\System.Windows.Interactivity.dll" to "......\Binaries\System.Windows.Interactivity.dll". Exceeded retry count of 10. Failed.

Und tatsächlich ist die dll auch gesperrt da sie genutzt wird. Seltsam ist aber das sie von der Service-Solution genutzt wird welche ich in der Regel immer nebenher im Debugger laufen lasse. Mir leuchtet dabei nicht ein warum meine WindowsService-Solution eben die System.Windows.Interactivity.dll nutzen sollte da sie quasi keine Oberfläche hat und genau darum geht es ja in der besagten DLL. Ich finde mit der Suchfunktion von VS auch keinerlei Hinweis auf die System.Windows.Interactivity.dll innerhalb meiner Service-Solution.
Ich finde es auch etwas ominös dass ich meine Service-Solution erstellen kann während die GUI läuft, aber ich kann nicht die GUI-Solution erstellen während die Service-Solution läuft.

Wie kann ich rausfinden welcher Teil meiner Service-Solution tatsächlich die System.Windows.Interactivity.dll nutzt und blockiert?

VG

Ralf

1.378 Beiträge seit 2006
vor 8 Jahren
  • Die System.Windows.Interactivity.dll mal aus dem Zielverzeichnis löschen und schauen ob das Service noch immer läuft.

  • Eventuell benötigt eine verwendete Bibliothek diese quasi indirekt?

  • Wenn du das Zielverzeichnis cleanst und nur Service-Relevante Projekte kompilierst, wird die System.Windows.Interactivity.dll dann auch rein kopiert?

  • Wenn es sich garnicht beheben lässt, könntest du CopyLocal deaktivieren und das File manuell per PostBuild Script ins Zielverzeichnis kopieren (nur wenn unterschiedlich)

Lg, XXX

//Edit:

laut Does Visual Studio 2010 copy assemblies with “Copy Local = true” on every build? sollte die Assembly ohnehin nur kopiert werden, wenn sie neuer ist. - Trifft dies bei dir zu? Haben die teilweise unterschiedliche Versionen?

M
MillionsterNutzer Themenstarter:in
235 Beiträge seit 2005
vor 8 Jahren

Hallo xxxprod,

du hast mich in die richtige Richtung geschickt: Obwohl ich die dll gelöscht habe lief der Service noch tadellos hoch was mich doch schwer gewundert hat. Ich habe dann die 'Common Language Runtime Excecptions' im Service-Projekt mal wieder auf 'Thrown' gesetzt um zu schauen ob es vielleicht doch irgendwie kracht und ob ich es einfach nicht mitbekomme und tatsächlich:
Es war eine DLL die über MEF dynamisch hinzugeladen wird welche die besagte System.Windows.Interactivity.dll verwendet!

Ich werde die MEF assembly vorerst mal weg löschen da ich diese für meine Arbeit nicht brauche. Das löst mein Problem mal temporär. Zusätzlich werd ich mal den zuständigen Kollegen befragen ob seine MEF assembly tatsächlich die Interactivity braucht.

Vielen Dank für den Denkanstoss!!!!

VG

Ralf