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
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...
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
Bitte Bilder immer als Dateianhang hochladen! Siehe [Hinweis] Wie poste ich richtig? , 6.1
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...
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