Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

System.Windows.Interactivity.dll wird blockiert beim compilieren
MillionsterNutzer
myCSharp.de - Member



Dabei seit:
Beiträge: 235

Themenstarter:

System.Windows.Interactivity.dll wird blockiert beim compilieren

beantworten | zitieren | melden

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:
Fehler
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
private Nachricht | Beiträge des Benutzers
xxxprod
myCSharp.de - Experte

Avatar #avatar-2329.gif


Dabei seit:
Beiträge: 1.378
Herkunft: Österreich\Wien

beantworten | zitieren | melden

- 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?
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von xxxprod am .
private Nachricht | Beiträge des Benutzers
MillionsterNutzer
myCSharp.de - Member



Dabei seit:
Beiträge: 235

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers