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, "'"));
        }
Beispiel #2
0
        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);
            }
        }