Ich verbringe die meiste Zeit damit, Steuerelemente für WPF und Silverlight mit derselben Codebasis zu entwickeln. Dazu füge ich bestehende Dateien aus einem Projekt (zB Silverlight) "als Links" zum anderen hinzu (zB WPF). Für kleinere Unterschiede verwende ich Präprozessordirektiven wieVisual Studio: "Dieses Dokument wird von einem anderen Projekt geöffnet"
#if SILVERLIGHT
...
#else
...
#endif
Der Code in diesen Blöcken ausgegraut ist abhängig von der Art des Projekts Sie die Datei aus geöffnet haben. Wenn Sie Ihre Datei also vom Silverlight-Projekt aus öffnen (wo SILVERLIGHT definiert ist), ist der else-Teil grau und Intellisense funktioniert nicht.
Damit der WPF-Teil von der IDE verarbeitet werden kann (mit Farb- und Intellisense-Unterstützung), müssen Sie die Datei aus dem WPF-Projekt öffnen. Wenn Sie dies versuchen, erhalten Sie ein Meldungsfeld mit der Nachricht "Dieses Dokument wird von einem anderen Projekt geöffnet" und wenn Sie auf OK klicken, wird diese Datei im Kontext des Silverlight-Projekts angezeigt (nicht das, was ich sehen wollte). Also muss ich die Datei schließen, wieder zum WPF-Projekt navigieren und die Datei erneut öffnen. Das ist sehr, sehr nervig.
Die Frage ist also: Gibt es eine Art von Einstellung oder Add-on, die Visual Studio die Datei aus dem Projekt neu öffnen würde, wo ich doppelt klickte, anstatt diese dumme Nachricht anzuzeigen und zeigt mir diese Datei vom "falschen" Projekt?
Bis jetzt keine Lösung für dieses Problem außer das Schließen der Datei. Es ist auch der Grund für die DLL-Sperre "Nicht in der Lage zu erstellen ..." Ausnahme in VS2010. –
Ich frage mich, ob es für Add-In theoretisch möglich ist, dies zu behandeln: benachrichtigt werden, bevor Benutzer versucht, eine Datei zu öffnen, wenn die gleiche Datei bereits aus einem anderen Projekt geöffnet ist, schließen Sie die Datei und öffnen Sie das aktuelle Projekt erneut. Klingt machbar, wenn solche APIs vorhanden sind. –
Mann, das wäre wirklich gut. Es ist ärgerlich, die Datei ständig zu schließen und zu öffnen. – andrecarlucci