Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
VS2010-AddIn für (mehrere) aktiv markierte Files?
Cchat
myCSharp.de - Member



Dabei seit:
Beiträge: 6

Themenstarter:

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

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
rollerfreak2
myCSharp.de - Member

Avatar #avatar-3271.jpg


Dabei seit:
Beiträge: 916

beantworten | zitieren | melden

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
Zitat
Folgendes, ich kann zwar AddIn für Solution, Projekte schreiben.

meinst. Auch verstehe ich nicht was du mit
Zitat
wie kann ich die Projekte bzw. Files auflisten?
meinst du damit innerhalb des Addins?
Zitat
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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von rollerfreak2 am .
Again what learned...
private Nachricht | Beiträge des Benutzers
Cchat
myCSharp.de - Member



Dabei seit:
Beiträge: 6

Themenstarter:

beantworten | zitieren | melden

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?



Zitat
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
Attachments

Moderationshinweis von MarsStein (08.09.2011 - 13:14)

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

private Nachricht | Beiträge des Benutzers
rollerfreak2
myCSharp.de - Member

Avatar #avatar-3271.jpg


Dabei seit:
Beiträge: 916

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
Cchat
myCSharp.de - Member



Dabei seit:
Beiträge: 6

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers