private string CreateScript(int commandId, string edition, string version, IItem item) { var runModeParameters = ScriptGenerator.GetRunModeParamaters(); var genericParameters = ScriptGenerator.GetGenericParamaters(commandId, edition, version); var itemRelatedParameters = item is CurrentProject? ScriptGenerator.GetItemRelatedParameters(item as CurrentProject) : ScriptGenerator.GetItemRelatedParameters(item as CurrentProjectItem); return(JoinUtility.Join(" ", runModeParameters.Remove(runModeParameters.Length - 1), itemRelatedParameters, genericParameters, "'")); }
public void Run(Document document, int commandId) { try { #region Create currnet project item if (document == null || document.ProjectItem == null) { return; } var projectName = document.ProjectItem.ContainingProject.FullName; if (string.IsNullOrWhiteSpace(projectName)) { return; } IItem item = new CurrentProjectItem(document.ProjectItem); #endregion #region Get VS edition and version var dte = (DTE2)VsServiceProvider.GetService(typeof(DTE)); var vsEdition = dte.Edition; mVsVersions.TryGetValue(dte.Version, out string vsVersion); #endregion #region Generate powershell script string runModeParameters = ScriptGenerator.GetRunModeParamaters(); string genericParameters = ScriptGenerator.GetGenericParamaters(commandId, vsEdition, vsVersion, false); CMakeBuilder cMakeBuilder = new CMakeBuilder(); cMakeBuilder.Build(); var vsSolution = SolutionInfo.IsOpenFolderModeActive() == false ? (IVsSolution)VsServiceProvider.GetService(typeof(SVsSolution)) : null; var itemRelatedParameters = ScriptGenerator.GetItemRelatedParameters(item); var psScript = JoinUtility.Join(" ", runModeParameters.Remove(runModeParameters.Length - 1), itemRelatedParameters, genericParameters, "'"); #endregion #region PowerShell Invocation powerShell.Invoke(psScript, new RunningProcesses(true)); #endregion cMakeBuilder.ClearBuildCashe(); } catch (Exception) { //MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }