2016-01-11 52 views
7

Używam programu Visual Studio 2012 do zbudowania programu WPF. Istnieje DLL skompilowany z C, którego używam do wywoływania DllImport. DLL jest dodawany w projekcie i oznaczone jakoPlik skopiowany do folderu debugowania jest automatycznie usuwany po uruchomieniu programu C#

  • budowy działaniu: Content
  • Kopiuj do Output Directory, copy zawsze

Gdy roztwór projekt jest zbudowany dll jest kopiowany do katalogu Debug z plik .exe wygenerowany przez Visual Studio pomyślnie. Jednak po uruchomieniu go, klikając dwukrotnie wygenerowany plik .exe z Eksploratora plików lub "Uruchom" w debuggerze VS, dll nagle zostanie usunięty sam.

Dlaczego?

+0

Uważam, że nie tylko DLL, ale nawet prosty plik abc.txt dodany jako Treść zostanie usunięty automatycznie po uruchomieniu programu. –

Odpowiedz

1

Jeśli tak to kiedy uruchomiony z Eksploratora plików, a następnie albo

  • Twój program antywirusowy jest usunięcie dll podczas próby uzyskania dostępu to

lub

  • Musi istnieć kod w twoim programie, aby usunąć pliki z katalogu bieżącego .
0

Po wielu próbach znalazłem wzór, który może być również obejściem problemu. Załóżmy, że mamy 3 projekty, A, B i C.

  1. A zależy od B; B zależy od C - problem istnieje
  2. A zależy od B i C; B zależy od C - problem znika

Może to pomoże komuś śledzić powody.

+0

Jeśli masz nowe pytanie, poproś o to, klikając przycisk [Zadaj pytanie] (https://stackoverflow.com/questions/ask). Dodaj link do tego pytania, jeśli pomoże to w zapewnieniu kontekstu. - [Z recenzji] (/ opinia/niskiej jakości-posts/18533107) – Isma

+0

Nie daje to odpowiedzi na pytanie. Gdy masz już wystarczającą [reputację] (https://stackoverflow.com/help/whats-reputation), będziesz mógł [komentować dowolny wpis] (https://stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast). - [Z recenzji] (/ opinia/niskiej jakości-posts/18533107) –