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
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
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
Solution solution = this._applicationObject.Solution;
foreach (Project proj in solution.Projects)
{...
}
Leider klappt es nur solange wenn keinen Ordner vorhanden ist, sonst bekomme ich den Ordner als ein Project zurück?
Also die Projekte müssen direkt unter Solution befinden?
Oder gibt es eine andere Möglichkeit? Also Rekursiv meinte ich.
mfg
Ich schreibe gerade einen Addin, welcher man die Framework Version für ganze Solution ändern kann, der Benutzer sollte aber nur die gültige FrameVersion setzen können.
Ich denke, XML ist eine gute Lösung, danke.
Wie kann ich alle Framework Version auflisten (per Code), welche VS2010 anbietet?
mfg