Frage

Ich habe mich gefragt, ob es ein Weg war völlig meinen Code zu sperren, während es das Debuggen in Visual Studio 2008. Die Code-Dokumente automatisch sperren, wenn sie als 64-Bit-Anwendungen ausgeführt werden, was ich sehr bevorzugen; aber ich die meisten meiner Codierung machen Add-Ins für Excel, die 32-Bit ist. Das Ergebnis ist, dass, obwohl ich ‚AnyCPU‘ Ziel, weiß die VS-Host, dass es innerhalb eines 32-Bit-Prozesses ausgeführt wird und deshalb die Quellcode nicht gesperrt, während der Code in Visual gehostet läuft Studio.

Ich kann off bearbeiten drehen und weiter über Extras> Optionen> Debuggen> Bearbeiten und Fortfahren, und dann die Option ‚Aktiviert Bearbeiten und Fortfahren‘ Kontrollkästchen. Dies gilt nicht vollständig den Code sperren, jedoch. Dies verhindert jegliche Änderungen im Code von in dem Strom ausgeführt wird, laufen, aber es verhindert nicht, Mausklicks oder Tastatureingaben aus tatsächlich den Code zu ändern.

Auch wenn mit 64-Bit-Anwendungen arbeiten dies nicht der Fall - wird der Code vollständig gesperrt. Ich ziehe es stark der Code vollständig für mindestens ein paar Gründe gesperrt werden:

  1. kann ich versehentlich auf eine Taste oder dergleichen während des Debuggens, die ich definitiv nicht wollen, zu tun. Es ist selten, aber es ist ein Problem.

  2. Viele meiner automatisierten Tests fahren die Benutzeroberfläche über Tastaturbefehle. Wenn durch einen solchen Test Schritt den Debugger verwenden, jedoch kann ich manchmal vergessen, dass einige der Aspekte beinhalten Tastaturbefehle, was bedeutet, dass Tastatureingaben an das Visual Studio IDE anstelle von Excel gesendet aufzuwickeln bekommen.

In der Ausgabe # 2, oben, schlägt das Gerät zu testen, das ist in Ordnung - mein schlecht -. Aber alle Tastenanschläge, die an die Code-Modul gesendet und meinen Code zu zerstören ist völlig inakzeptabel

hat jemand irgendwelche Ideen hier? Kann man den Code vollständig sperren, wenn in Visual Studio gehosteten Lauf gegen eine 32-Bit-CPU kompiliert, während?

Einige verwandten Beiträge zu diesem Thema, aber keiner von denen diese direkt ansprechen:

Vielen Dank im Voraus für jede Hilfe oder Ideen ...

Mike

War es hilfreich?

Lösung

Hier ist das Beste, was ich tun konnte. Es funktioniert, aber es gibt einige Schritte, die Sie nicht in Anspruch nehmen wollen.

Im Wesentlichen ist die Technik, die Dateien Ihres Projekts einzustellen Read-Only, wenn Sie die Anwendung ausführen, und legen Sie sie wieder einmal beschreibbar Ihre Anwendung beendet.

Doch in VS2k8, standardmäßig eine Datei Einstellung Read-Only können Sie immer noch zu bearbeiten Sie die Datei. Sie müssen sich zuerst wiederum von der Einstellung „Allow Bearbeitung von schreibgeschützten Dateien ...“ in Extras> Optionen> Umwelt> Dokumente.

Zweitens müssen Sie den folgenden Schlüssel in der Registrierung als DWORD hinzuzufügen und seinen Wert auf 1:

HKCU\Sofware\Microsoft\Visual Studio\9.0\Source Control\UncontrolledInMemoryEditDialogSuppressed  

Das noch nicht vollständig funktionieren. Was Sie dann tun müssen ist, geben Sie Ihre Source-Control für das Projekt zu Visual Source Safe. (<-. Dies ist der Schritt, den ich Sie gehe davon wird nicht wie)

Dann VS2k8 neu starten.

An diesem Punkt, wenn Sie setzen eine Ihrer Dateien nur gelesen zu, Sie werden sehen, dass Visual Studio werden Sie diese Datei überhaupt nicht zulassen bearbeiten. Wenn Sie versuchen, es spielt Musik Ausnahme des Computers.

Jetzt, damit Sie Ihre Dateien schreibgeschützt, wenn Sie die App ausgeführt wird, stellen einen Post-Build-Prozess, dies zu tun. Das ist einfach.

Harder, ist sie wieder beschreibbar zu setzen, sobald die App beendet ausgeführt wird. Die einfachste Lösung ist wahrscheinlich eine Batch-Datei-Verknüpfung.

Andere Tipps

Hier ist ein Trick, den ich unter Visual Studio 2005 verwenden (keine Chance zu Test unter Visual Studio 2008, aber es sollte funktionieren):

  • Öffnen Sie die ausführbare Assembly Eigenschaften
  • Gehen Sie auf die Debug
  • Überprüfen Sie die Aktivieren Sie nicht verwalteten Code debuggen Checkbox

Die Code Dokumente gesperrt bleiben sollen, auch wenn ein Haltepunkt erreicht wird, und jeder Versuch, es zu ändern sollte einen Popup sagen auslösen „Änderungen sind nicht erlaubt, wenn nicht verwaltete Debuggen aktiviert“ .

Hallo - leider kann ich dir nicht helfen, mit Ihrem Code vollständig Verriegelung - Ich habe das Gegenteil Wunsch: UNLOCK es vollständig während debug, aber ich kann Ihnen mit Ihrer zweiten Frage helfen

.

Ich schlage vor, dass Sie das aktive Fenster betrachten zu prüfen, bevor alle Schlüssel zu senden und wenn das aktive Fenster ist anders als Ihre Zielstelle, unterbrechen Sie die Ausführung Ihres Tests bis Fokus, dass das Fenster zurückgeführt wird.

Ich weiß, es ist nicht die Lösung, die Sie wollen, aber es wäre wahrscheinlich nicht schaden andere ähnliche Probleme zu vermeiden.

Viel Glück!

Adam

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