Laden...

VS2010-AddIn für (mehrere) aktiv markierte Files?

Erstellt von Cchat vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.074 Views
C
Cchat Themenstarter:in
6 Beiträge seit 2011
vor 12 Jahren
VS2010-AddIn für (mehrere) aktiv markierte Files?

Folgendes, ich kann zwar AddIn für Solution, Projekte schreiben.

Aber es funktioniert nur wenn ich einzelne Datei auswähle, wie könnte ich also den meine AddIn in dem Kontextmenu so einbaue, sodass man beim markieren auch sehen kann?

Es folgt, wie kann ich die Projekte bzw. Files auflisten?

Das weiterem.
Wenn ich ein Projekt-Datei extern ändern würde, dann verlangt VS2010 von mir, dass ich das Projekt "erneut Laden" muss, ich möchte dies automatisch gesehen, wie kann ich es tun?
Also Projekte mit c# erneut laden? Ich bekomme die Projekte als "Project" oder "VSProject" Objekt.

Wäre schön, wenn jemand mir helfen könnte.
mfg

916 Beiträge seit 2008
vor 12 Jahren

Hallo Cchat,

erst einmal muss ich anmerken das dein Text ziemlich schlecht zu lesen ist. Desweiteren poste mal ein bisschen Code wie du dein "Addin" bereits integriert hast, und was genau du mit

Folgendes, ich kann zwar AddIn für Solution, Projekte schreiben.

meinst. Auch verstehe ich nicht was du mit

wie kann ich die Projekte bzw. Files auflisten? meinst du damit innerhalb des Addins?

Wenn ich ein Projekt-Datei extern ändern würde, dann verlangt VS2010 von mir, dass ich das Projekt "erneut Laden" muss, ich möchte dies automatisch gesehen, wie kann ich es tun?

Heißt du das willst in deinem Addin verhindern das VS diesen Dialog anzeigt wenn immer sich irgendeine SourceDatei außerhalb des VS ändert? Wenn ja dann ist das m.E. nach der falsche weg!

Vorsorglich mal ein Tutorial zum durcharbeite How To implement an VS Addin

Again what learned...

C
Cchat Themenstarter:in
6 Beiträge seit 2011
vor 12 Jahren

Ich versuche noch mal, ich kann AddIn(RefSwitch) für VS2010 schreiben.
Aber diese AddIn Funktion kann ich nur für Kontexmenü von Solution und Projekte einbauen!

Ich kann im Moment diesen Kontextmenu einbauen:

(siehe Anhang, Bild 1)

Jedoch möchte ich diese AddIn auch bei dem Kontextmenu erscheinen, wenn ich mehrere Projekte markieren würde:

(siehe Anhang, Bild 2)

Dieser Code führt dazu, dass die AddIn bzw. Befehle in Kontextmenü eingefügt wird!


            // Kontext Menu
            var rootBars = (CommandBars)this._applicationObject.CommandBars;
            int a = this._applicationObject.ContextAttributes.Count;

            
            // Menu unter Solution
            CommandBar commandBar = rootBars[Consts.VsSolutionExplorer.Solution];
            // Solution -> RefSwitch
            var refSwitchPopUp = CommandManager.Instance.AddSubMenu(commandBar, Consts.COMMAND_RefSwitch_Base, Consts.COMMAND_RefSwitch_Base, true, 6);

Wenn ich die Befehle im Kontextmenu eingefügt hätte, wie könnte ich dann die "markierte Projekte" auflisten?

Heißt du das willst in deinem Addin verhindern das VS diesen Dialog anzeigt wenn immer sich irgendeine SourceDatei außerhalb des VS ändert? Wenn ja dann ist das m.E. nach der falsche weg!

Nein, du hast da falsch verstanden, ich kann über die Schnittstelle von "Project" bzw, "VSProject" aus nicht alles ändern was ich möchte.
Daher mach ich es über XDocument und verändere das Projekt!
Ich möchte, dass es nach jeder Änderung, das Projekt automatisch "Erneut Laden" sollte. Damit die Meldung nicht mehr kommt.

Hoffe, du kannst mich jetzt besser verstehen.
mfg

Hinweis von MarsStein vor 12 Jahren

Bitte Bilder immer als Dateianhang hochladen! Siehe [Hinweis] Wie poste ich richtig? , 6.1

916 Beiträge seit 2008
vor 12 Jahren

Hi Cchat,

für deine 1.Hürde kann ich dir folgendes Tutorial empfehlen. Adding a context-menu to the Solution Explorer

Dein zweites Problem das du dann via XDocument etwas ändern möchtest und den Confirm changes Dialog ausblenden willst. Das, denke ich, kannst du wenn überhaupt nur schaffen wenn es ein VS2010 Setting gibt mit dem man das ausschalten kann. Dann könntest du mit deinem PlugIn dieses Settings aktivieren/deaktivieren.

Again what learned...

C
Cchat Themenstarter:in
6 Beiträge seit 2011
vor 12 Jahren

HM....


            CommandBar vsBarMultiItem = rootBars["Cross Project Multi Item"];

            var multiselection = CommandManager.Instance.AddSubMenu(vsBarMultiItem, "MULTISELECT", "MULTISELECT", true, 8);


            // Manipulator ->
            CommandManager.Instance.AddCommandBarButton(multiselection, Consts.COMMAND_NAME_CommandAssemblyGUIDOnSolution, false, 1);
            CommandManager.Instance.AddCommandBarButton(multiselection, Consts.COMMAND_NAME_CommandProjectGUIDOnSolution, false, 2);
            CommandManager.Instance.AddCommandBarButton(multiselection, Consts.COMMAND_NAME_CommandSelfReferenceOnSolution, false, 3);
            CommandManager.Instance.AddCommandBarButton(multiselection, Consts.COMMAND_NAME_CommandAssemblyInfoOnSolution, false, 4);
            CommandManager.Instance.AddCommandBarButton(multiselection, Consts.COMMAND_NAME_CommandDefaultReferecesOnSolution, false, 5);
            CommandManager.Instance.AddCommandBarButton(multiselection, Consts.COMMAND_NAME_CommandThirdPartyOnSolution, false, 6);
            CommandManager.Instance.AddCommandBarButton(multiselection, Consts.COMMAND_NAME_CommandKonfigManagerOnSolution, false, 7);
            CommandManager.Instance.AddCommandBarButton(multiselection, Consts.COMMAND_NAME_CommandOutputPathOnSolution, false, 8);

Ich konnte zwar einfügen, es wird aber nicht angezeigt