public MainViewModel([NotNull] EnvDTE.Solution solution) { _selectedVSProjects.CollectionChanged += SelectedVSProjects_CollectionChanged; Solution = new Solution(solution); CommandManager.RequerySuggested += CommandManager_RequerySuggested; }
public static EnvDTE.Project[] AllProjects(this EnvDTE.Solution solution) { var results = new List <EnvDTE.Project>(); var queue = new Queue <EnvDTE.Project>(solution.Projects.OfType <EnvDTE.Project>()); while (queue.Count > 0) { var project = queue.Dequeue(); results.Add(project); if (project.ProjectItems != null) { foreach (EnvDTE.ProjectItem item in project.ProjectItems) { if (item.Kind == ProjectType_SolutionFolder || item.Kind == ProjectItemType_SolutionFolder) { if (item.SubProject != null) { queue.Enqueue(item.SubProject); } } } } } return(results.ToArray()); }
public VsSolution(DteSolution dteSolution, ISolutionManager solutionManager, IVsPackageManager packageManager) { _name = String.Format( CultureInfo.CurrentCulture, Strings.Label_Solution, dteSolution.GetName()); _solution = solutionManager; _packageManager = packageManager; var repo = (SharedPackageRepository)packageManager.LocalRepository; _installedSolutionLevelPackages = new CoreInteropInstalledPackagesList( new PackageReferenceRepository(repo.PackageReferenceFile.FullPath, repo)); DteSolution = dteSolution; // Add V2-related interop features AddFeature(() => packageManager.LocalRepository); AddFeature <IPackageManager>(() => packageManager); AddFeature <IPackageCacheRepository>(() => MachineCache.Default); // the source repository of the local repo of the solution AddFeature <SourceRepository>(() => { var localRepo = new NuGet.Client.Interop.V2SourceRepository( null, packageManager.LocalRepository, ""); return(localRepo); }); // Add PowerShell feature AddFeature <PowerShellScriptExecutor>(() => new VsPowerShellScriptExecutor(ServiceLocator.GetInstance <IScriptExecutor>())); }
public static void RunlUpdate(EnvDTE.Solution solution) { foreach (EnvDTE.Project project in HelperFunctions.ProjectsInSolution(solution.DTE)) { RunlUpdate(project); } }
private void InitializeWizard(object automationObject, Dictionary <string, string> replacementsDictionary) { inputForm = new frmWizService(); inputForm.FinalizeWizEvent += new FinalizeWizHandler(inputForm_FinalizeWizEvent); inputForm.ServiceName = replacementsDictionary["$rootname$"]; solution = (((EnvDTE.SolutionClass)(((EnvDTE.DTE)automationObject).Solution))); selectedProject = HelperFunctions.GetDTE_SelectedProject(solution); projectIsvc = HelperFunctions.GetDTEProject(solution, "ISVC"); if (projectIsvc == null) { projectIsvc = selectedProject; } projectSvc = HelperFunctions.GetDTEProject(solution, "SVC"); if (projectSvc == null) { projectSvc = selectedProject; } //replacementsDictionary["$DefaultNamespace$"] = HelperFunctions.GetDTEProperty(solution, "Name").Value.ToString(); // HelperFunctions.GetDTEProperty(solution, "Name").Value.ToString(); inputForm.ProjectName = HelperFunctions.GetDTEProperty(solution, "Name").Value.ToString(); inputForm.ProjectSvcName = HelperFunctions.GetDTEProperty(projectSvc, "DefaultNamespace").Value.ToString(); inputForm.ProjectISvcName = HelperFunctions.GetDTEProperty(projectIsvc, "DefaultNamespace").Value.ToString(); }
static void GetProjectInformation(EnvDTE.Project project, EnvDTE.Solution solution, out string fullPathOfCSProj, out Context.ProjectType projectType, out Context.ProjectOutputType projectOutputType) { string projectTypeGuids = GetProjectTypeGuids(project); // Get the full path of the CSPROJ: fullPathOfCSProj = project.FullName; // Get the Project Type: projectType = GetProjectType(projectTypeGuids); // Define some helpful functions: Func <string, string> functionToGetAProjectProperty = (string propertyName) => { var property = project.Properties.Item(propertyName); // Credits: https://www.mztools.com/articles/2007/mz2007014.aspx if (property != null && property.Value != null) { return(property.Value.ToString()); } else { return(null); } }; Func <string, string> functionToGetACSProjProperty = (string propertyName) => { return(GetPropertyFromCSProj(propertyName, "Debug", project)); }; // Get the project Output Type: projectOutputType = GetProjectOutputType(projectType, functionToGetAProjectProperty, functionToGetACSProjProperty); }
/// <summary> /// Constructor /// </summary> /// <param name="solution">The base Visual Studio solution reference</param> public Solution(VSSolution solution) { if (solution == null) throw new ArgumentNullException("solution"); this._solution = solution; this.Name = solution.FullName; }
public VsSolution(DteSolution dteSolution, ISolutionManager solutionManager, IVsPackageManager packageManager) { _name = String.Format( CultureInfo.CurrentCulture, Strings.Label_Solution, dteSolution.GetName()); _solution = solutionManager; _packageManager = packageManager; var repo = (SharedPackageRepository)packageManager.LocalRepository; _installedSolutionLevelPackages = new CoreInteropInstalledPackagesList( new PackageReferenceRepository(repo.PackageReferenceFile.FullPath, repo)); DteSolution = dteSolution; // Add V2-related interop features AddFeature(() => packageManager.LocalRepository); AddFeature<IPackageManager>(() => packageManager); AddFeature<IPackageCacheRepository>(() => MachineCache.Default); // the source repository of the local repo of the solution AddFeature<SourceRepository>(() => { var localRepo = new NuGet.Client.Interop.V2SourceRepository( null, packageManager.LocalRepository, ""); return localRepo; }); // Add PowerShell feature AddFeature<PowerShellScriptExecutor>(() => new VsPowerShellScriptExecutor(ServiceLocator.GetInstance<IScriptExecutor>())); }
/// <summary> /// This function is the callback used to execute the command when the menu item is clicked. /// See the constructor to see how the menu item is associated with this function using /// OleMenuCommandService service and MenuCommand class. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event args.</param> private void Execute(object sender, EventArgs e) { ThreadHelper.ThrowIfNotOnUIThread(); if (_dte == null) { return; } EnvDTE.Solution solution = _dte.Solution; object[] projects = ((object[])_dte.ActiveSolutionProjects); var builder = new StringBuilder(); foreach (var item in projects) { EnvDTE.Project project = (EnvDTE.Project)item; builder.Append($"Project name: {project.Name}"); builder.Append(Environment.NewLine); } string message = builder.ToString(); string title = "Multi Projects Context Menu Command"; // Show a message box VsShellUtilities.ShowMessageBox( this.package, message, title, OLEMSGICON.OLEMSGICON_INFO, OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST); }
/// <summary> /// Gets all projects in the solution. /// </summary> /// <param name="solution">The solution.</param> /// <returns>The projects.</returns> public static IReadOnlyCollection <EnvDTE.Project> GetProjects(this EnvDTE.Solution solution) { var items = new List <EnvDTE.Project>(); var projects = solution.Projects; if (projects == null) { return(items); } for (var i = 1; i <= projects.Count; i++) { try { var project = projects.Item(i); if (project == null) { continue; } items.Add(project); project.ProjectItems.GetSubProjects(items); } catch { Trace.TraceError("Error loading project #" + i); } } return(items); }
private bool ShouldFormatSolution(EnvDTE.Solution solution) { Contract.Requires(solution != null); var sourceControl = Dte.SourceControl; int result; if (sourceControl != null && sourceControl.IsItemUnderSCC(solution.FullName)) { result = VsShellUtilities.ShowMessageBox( this, Resources.ConfirmFormatSourceControlledSolution, Resources.ConfirmFormatSolutionTitle, OLEMSGICON.OLEMSGICON_QUERY, OLEMSGBUTTON.OLEMSGBUTTON_OKCANCEL, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_SECOND); } else { result = VsShellUtilities.ShowMessageBox( this, Resources.ConfirmFormatSolution, Resources.ConfirmFormatSolutionTitle, OLEMSGICON.OLEMSGICON_QUERY, OLEMSGBUTTON.OLEMSGBUTTON_OKCANCEL, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_SECOND); } ErrorHandler.ThrowOnFailure(result); return(result == (int)VSConstants.MessageBoxResult.IDOK); }
public Solution([NotNull] EnvDTE.Solution solution) { _solution = solution; Projects = _solution.GetProjects() .Select(project => new Project(this, project)) .Where(project => project.IsVsProject) .OrderBy(project => project.Name) .ToArray(); foreach (var project in Projects) { if (project == null) { continue; } foreach (var dependency in project.GetProjectReferences()) { Debug.Assert(dependency != null); dependency.SourceProject?.ReferencedBy.Add(project); } } // Microsoft.Tools.WindowsInstallerXml.VisualStudio.OAWixProject WixProjects = _solution.GetProjects() .Where(project => "{930c7802-8a8c-48f9-8165-68863bccd9dd}".Equals(project.Kind, StringComparison.OrdinalIgnoreCase)) .Select(project => new WixProject(this, project)) .OrderBy(project => project.Name) .ToArray(); }
public ReferenceEngine(EnvDTE.Solution solution, string startsWith, bool showSystemReferences, bool showMissingOnly) { if (solution == null || String.IsNullOrEmpty(solution.FullName)) { _references = Enumerable.Empty <ProjectModel>(); } _references = ParseSolutionFile(solution.FullName, startsWith, showSystemReferences, showMissingOnly); }
/// <summary> /// Build the current project. /// </summary> /// <returns> /// returns true if build passed /// </returns> private static bool BuildActiveProject() { EnvDTE.Solution sol = CodeRush.Solution.Active; //EnvDTE.Project project = GetActiveProject(); sol.SolutionBuild.Build(true); // We build the whole solution becuase some projects are not configured to build the projects they depend upon first. //sol.SolutionBuild.BuildProject(project.ConfigurationManager.ActiveConfiguration.ConfigurationName, project.UniqueName, true); return(sol.SolutionBuild.LastBuildInfo == 0); }
/// <summary> /// Gets the path to .nuget folder present in the solution /// </summary> /// <param name="envDTESolution">Solution from which .nuget folder's path is obtained</param> public static string GetNuGetSolutionFolder(EnvDTESolution envDTESolution) { Debug.Assert(envDTESolution != null); string solutionFilePath = (string)envDTESolution.Properties.Item("Path").Value; string solutionDirectory = Path.GetDirectoryName(solutionFilePath); return(Path.Combine(solutionDirectory, NuGetSolutionSettingsFolder)); }
public ProjectItemIterator(EnvDTE.Solution solution) { if (solution == null) { throw new ArgumentNullException("solution"); } projects = TryHelper.Run <IEnumerable <EnvDTE.Project> >(() => solution.Projects.Cast <EnvDTE.Project>()); }
public ProjectItemIterator(EnvDTE.Solution solution) { if (solution == null) { throw new ArgumentNullException("solution"); } projects = solution.Projects.Cast <EnvDTE.Project>(); }
/// <summary> /// This function is the callback used to execute the command when the menu item is clicked. /// See the constructor to see how the menu item is associated with this function using /// OleMenuCommandService service and MenuCommand class. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Event args.</param> private void Execute(object sender, EventArgs e) { ThreadHelper.ThrowIfNotOnUIThread(); _commandExecutionLimiter.StartCommandExec(); EnvDTE.DTE dte = (EnvDTE.DTE)ThreadHelper.JoinableTaskFactory.Run(() => ServiceProvider.GetServiceAsync(typeof(EnvDTE.DTE))); EnvDTE.Solution solution = dte.Solution; String target = solution.FileName; ThreadHelper.JoinableTaskFactory.RunAsync(() => ExecuteSolutionAnalysisAsync(target)); }
/// <summary> /// Constructor /// </summary> /// <param name="solution">The base Visual Studio solution reference</param> public Solution(VSSolution solution) { if (solution == null) { throw new ArgumentNullException("solution"); } this._solution = solution; this.Name = solution.FullName; }
public static EnvDTE.Project FindProjectEx(this EnvDTE.Solution solution, string projectName) { foreach (EnvDTE.Project project in solution.Projects) { if (project.Name.Equals(projectName)) { return(project); } } return(null); }
public static string GetSolutionFilePath() { EnvDTE.Solution solution = EditorExtensionsPackage.DTE.Solution; if (solution == null || string.IsNullOrEmpty(solution.FullName)) { return(null); } return(Path.Combine(Path.GetDirectoryName(solution.FullName), _fileName)); }
public MigrationWizardWindow(EnvDTE.Solution solution) { InitializeComponent(); _context = new Context(solution: solution); _context.MigrationCompleted += Context_MigrationCompleted; _context.MigrationStarted += Context_MigrationStarted; this.Loaded += MigrationWizardWindow_Loaded; MainContainer.Navigated += MainContainer_Navigated; }
public static void RunlUpdate(EnvDTE.Solution solution) { if (solution == null) { return; } foreach (var project in HelperFunctions.ProjectsInSolution(solution.DTE)) { RunlUpdate(project); } }
public bool SaveSolutionQtVersion(EnvDTE.Solution solution, string version) { if (!IsVersionAvailable(version) && version != "$(DefaultQtVersion)") { return(false); } solution.Globals["Qt5Version"] = version; if (!solution.Globals.get_VariablePersists("Qt5Version")) { solution.Globals.set_VariablePersists("Qt5Version", true); } return(true); }
private void BeforeQueryStatus(object sender, EventArgs e) { if (_dte == null) { return; } EnvDTE.Solution solution = _dte.Solution; EnvDTE.Project project = (EnvDTE.Project)((object[])_dte.ActiveSolutionProjects)[0]; var cmd = (OleMenuCommand)sender; cmd.Visible = project.Kind == "{9A19103F-16F7-4668-BE54-9A1E7A4F7556}"; }
public static void RunlRelease(EnvDTE.Solution solution) { ThreadHelper.ThrowIfNotOnUIThread(); if (solution == null) { return; } foreach (var project in HelperFunctions.ProjectsInSolution(solution.DTE)) { RunlRelease(project); } }
public string GetSolutionQtVersion(EnvDTE.Solution solution) { if (solution == null) { return(null); } if (solution.Globals.get_VariableExists("Qt5Version")) { var version = (string)solution.Globals["Qt5Version"]; return(VerifyIfQtVersionExists(version) ? version : null); } return(null); }
private void btnOpenBinDir_Click(object sender, EventArgs e) { EnvDTE.Solution sln = _applicationObject.Solution; DirectoryInfo info = Directory.GetParent(sln.FullName); try { string text = info.FullName; System.Diagnostics.Process.Start(text + "\\bin"); } catch (Exception exc) { MessageBox.Show(exc.Message); } }
public void ResetTree() { EnvDTE.Solution sln = _applicationObject.Solution; DirectoryInfo info = Directory.GetParent(sln.FullName); treeView1.Nodes.Clear(); TreeNode nodeTmp = AddDll(new TreeNode("ThkRelLibWF5x64"), info.FullName); if (nodeTmp != null) { treeView1.Nodes.Add(nodeTmp); } nodeTmp = AddDll(new TreeNode("ThkRelLibWF5"), info.FullName); if (nodeTmp != null) { treeView1.Nodes.Add(nodeTmp); } nodeTmp = AddDll(new TreeNode("RelLibCR2"), info.FullName); if (nodeTmp != null) { treeView1.Nodes.Add(nodeTmp); } nodeTmp = AddDll(new TreeNode("RelLibCR2x64"), info.FullName); if (nodeTmp != null) { treeView1.Nodes.Add(nodeTmp); } nodeTmp = AddDll(new TreeNode("Release"), info.FullName); if (nodeTmp != null) { treeView1.Nodes.Add(nodeTmp); } nodeTmp = AddDll(new TreeNode("Releasex64"), info.FullName); if (nodeTmp != null) { treeView1.Nodes.Add(nodeTmp); } nodeTmp = AddDll(new TreeNode("ThkRelLibWF4x64"), info.FullName); if (nodeTmp != null) { treeView1.Nodes.Add(nodeTmp); } nodeTmp = AddDll(new TreeNode("ThkRelLibWF4"), info.FullName); if (nodeTmp != null) { treeView1.Nodes.Add(nodeTmp); } }
internal static EnvDTE.Project GetDTE_SelectedProject(EnvDTE.Solution solution) { EnvDTE.Project project = null; EnvDTE.SelectedItems wSelectedItems = ((EnvDTE.SelectedItems)((EnvDTE.Projects)solution.Projects).DTE.SelectedItems); if (wSelectedItems.Item(1).ProjectItem != null) { project = ((EnvDTE.Project)wSelectedItems.Item(1).ProjectItem.ContainingProject); } if (wSelectedItems.Item(1).Project != null) { project = wSelectedItems.Item(1).Project; } return(project); }
static void Main(string[] args) { Type t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0"); EnvDTE.DTE dte = (EnvDTE.DTE)System.Activator.CreateInstance(t); dte.SuppressUI = false; dte.MainWindow.Visible = true; EnvDTE.Solution sol = dte.Solution; sol.Open(@"C:\Temp\SolutionFolder\MySolution1\MySolution1.sln"); EnvDTE.Project pro = sol.Projects.Item(1); ITcSysManager sysMan = pro.Object; sysMan.ActivateConfiguration(); sysMan.StartRestartTwinCAT(); }
private void Refresh(EnvDTE.Solution solution) { if (solution == null) { ViewModel = null; return; } try { ViewModel = new MainViewModel(solution); } catch (Exception ex) { MessageBox.Show("Error loading: " + ex); } }
private void InitializeWizard(object automationObject, Dictionary<string, string> replacementsDictionary) { _Storage = new Storage(); _Storage.LoadStorage(); inputForm = new frmWizDAC_1(_Storage.CnnString); inputForm.FinalizeWizEvent += new FinalizeWizHandler(inputForm_FinalizeWizEvent); solution = (((EnvDTE.SolutionClass)(((EnvDTE.DTE)automationObject).Solution))); selectedProject = HelperFunctions.GetDTE_SelectedProject(solution); replacementsDictionary[CommonConstants.CONST_FwkProject_NAME] = HelperFunctions.GetDTEProperty(solution ,"Name").Value.ToString(); inputForm.ProjectName = replacementsDictionary[CommonConstants.CONST_FwkProject_NAME]; }
public TestDotsCoverageVsPlugin(VsSolutionTestCoverage vsSolutionTestCoverage, ITaskCoverageManager taskCoverageManager, IWpfTextView textView, IVsStatusbar statusBar, Solution solution) { _vsSolutionTestCoverage = vsSolutionTestCoverage; _taskCoverageManager = taskCoverageManager; _canvas = new Canvas(); _textView = textView; _statusBar = statusBar; _solution = solution; _textView.ViewportHeightChanged += (s, e) => Redraw(); _textView.LayoutChanged += LayoutChanged; this.Width = 20; this.ClipToBounds = true; this.Background = new SolidColorBrush(Colors.White); Children.Add(_canvas); textView.TextBuffer.Changed += TextBuffer_Changed; _taskCoverageManager.CoverageTaskEvent += TaskCoverageManagerCoverageTaskEvent; }
public QueryCloseSolutionEventArgs(EnvDTE.Solution solution, ref int pfCancel) { // TODO: Complete member initialization this.solution = solution; this.pfCancel = pfCancel; }
/// <summary> /// Creates COM automation objects and opens the solution... /// </summary> private void openSolution() { // We create a DTE object to automate our interaction // with Visual Studio. Type type = Type.GetTypeFromProgID("VisualStudio.DTE.10.0"); if (type == null) { throw new Exception("Visual Studio 2010 cannot be loaded"); } Object obj = System.Activator.CreateInstance(type, true); m_dte = (DTE2)obj; // We open the solution. (This needs to be a full path.) string path = Path.GetFullPath(m_parsedSolution.Name); m_dteSolution = Utils.call(() => (m_dte.Solution)); Utils.callVoidFunction(() => { m_dteSolution.Open(path); }); // We get the root folder for the solution... m_parsedSolution.RootFolderAbsolute = Path.GetDirectoryName(path) + "\\"; }
private void InitializeWizard(object automationObject, Dictionary<string, string> replacementsDictionary) { inputForm = new frmWizService(); inputForm.FinalizeWizEvent += new FinalizeWizHandler(inputForm_FinalizeWizEvent); inputForm.ServiceName = replacementsDictionary["$rootname$"]; solution = (((EnvDTE.SolutionClass)(((EnvDTE.DTE)automationObject).Solution))); selectedProject = HelperFunctions.GetDTE_SelectedProject(solution); projectIsvc = HelperFunctions.GetDTEProject(solution, "ISVC"); if (projectIsvc == null) projectIsvc = selectedProject; projectSvc = HelperFunctions.GetDTEProject(solution, "SVC"); if (projectSvc == null) projectSvc = selectedProject; //replacementsDictionary["$DefaultNamespace$"] = HelperFunctions.GetDTEProperty(solution, "Name").Value.ToString(); // HelperFunctions.GetDTEProperty(solution, "Name").Value.ToString(); inputForm.ProjectName = HelperFunctions.GetDTEProperty(solution, "Name").Value.ToString(); inputForm.ProjectSvcName = HelperFunctions.GetDTEProperty(projectSvc, "DefaultNamespace").Value.ToString(); inputForm.ProjectISvcName = HelperFunctions.GetDTEProperty(projectIsvc, "DefaultNamespace").Value.ToString(); }