Visual Studio Addin Entwicklung - Wie das „Der Prozess zugreifen kann nicht die Datei“ Problem zu lösen, nachdem Visual Studio verließ?

StackOverflow https://stackoverflow.com/questions/618408

  •  03-07-2019
  •  | 
  •  

Frage

Ich entwickle derzeit ein Visual Studio Add-in, aber wenn ich Visual Studio und Herunterfahren meiner Maschine und komme am nächsten Tag wieder zu schließen, kann ich die Add-In nicht bauen, weil es zur Zeit in Visual Studio geladen wird. Wie behebe ich dieses Problem so dass ich nicht entfernen muß manuell löschen und die Add-In jedes Mal, wenn ich zu debuggen will oder meine Add-In ändern?

neu installieren
War es hilfreich?

Lösung

Add-Ins werden in der Regel durch .AddIn Datei geladen, die in einem dieser Orte platziert

C: \ Dokumente und Einstellungen \ All Users \ Anwendungsdaten \ Microsoft \ MSEnvShared \ Addins \ C: \ Dokumente und Einstellungen \ Computer.User \ Eigene Dateien \ Visual Studio 2008 \ Addins

So

, wenn ich AddIn Entwicklung zu tun, beginne ich Visual Studio mit spezieller .bat Datei. Ich benutze auch die AddIn, wenn an anderen Projekten arbeiten, so gibt es weitere Komplikationen. Hier ist ein Beispiel für die Datei, die ich verwende:

:: My installed .AddIn file goes in All Users directory
move "C:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins\Sample.AddIn" "C:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins\Sample.AddIn_"

:: just in case it got left from the previous session
del "C:\Documents and Settings\Computer.User\My Documents\Visual Studio 2008\Addins\Sample_dbg_.AddIn"

:: start Visual Studio and open AddIn solution
"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" D:\dev\Sample.sln /resetaddin Sample.Connect

:: this will execute after Visual Studio is closed
del "C:\Documents and Settings\Computer.User\My Documents\Visual Studio 2008\Addins\Sample_dbg_.AddIn"

:: This is needed because my installed AddIn, and the one I'm developing are in different directories, yet have the same name. That confuses studio and this line sets things straight
"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" /resetaddin Sample.Connect /Command File.Exit

:: restore installed AddIn file
move "C:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins\Sample.AddIn_" "C:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvShared\Addins\Sample.AddIn"

exit

Ich tue dies auch auf Vorgefertigte Veranstaltung in AddIn Projekt:

copy "$(ProjectDir)\Sample_dbg_.AddIn" "C:\Documents and Settings\Computer.User\My Documents\Visual Studio 2008\Addins\Sample_dbg_.AddIn"

Auch Sie könnten Visual Studio Befehlszeilenparameter / rootsuffix schauen, aber ich war nicht in der Lage um, dass eine Lösung zu finden.

Andere Tipps

Sie können das Verhalten des Addin gesetzt und wie es lädt, ich es zu ‚Last on demand‘ gesetzt würde, die ich zur Zeit versuchen Sie einige Informationen zu finden.

Ich kann nichts offiziellen finden, aber wenn Sie auf das Setup-Projekt gehen, rechte Maustaste und wählen Sie „Ansicht Registry“ es finden Sie alle Registrierungsschlüssel zeigen, die erstellt werden. Navigieren Sie nach unten auf das Niveau für Ihre Addin und ändern Sie die ‚LoadBehavior‘ von ‚3‘ auf ‚2‘.

Von nun an können Sie sollen Ihre Add-in mit dem Addin-Manager laden.

Ich werde mit mehr Informationen versuchen und zu aktualisieren, wenn ich es bekommen kann, hoffe, es hilft.

Das ist was für mich gearbeitet:
Pre-Build-Ereignis, dass benennt das Ziel als

target.locked
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top