示例#1
0
        /// <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 MenuItemCallback(object sender, EventArgs e)
        {
            var dte = Host.Instance.Dte2;

            _project = dte.GetActiveProejct();

            //Common.CheckTfs(_project);
            _assemblyInfo = null;
            _ppp          = null;
            if (_project.IsSdkBased())
            {
                _ppp                 = _project.GetPackageProjectProperties();
                _metadata            = _ppp.ToManifestMetadata();
                _directoryBuildProps = Host.Instance.DTE.Solution.GetDirectoryBuildProps();
                var form = new MsbuildDeployWizard(_metadata, _ppp, _directoryBuildProps);
                form.StartPosition = FormStartPosition.CenterScreen;
                if (form.ShowDialog() == DialogResult.OK)
                {
                    form.SaveAndBuild();
                }
            }
            else
            {
                _nuspecFile = _project.GetNuSpecFilePath();
                if (!File.Exists(_nuspecFile))
                {
                    var dr = VsShellUtilities.ShowMessageBox(this.ServiceProvider,
                                                             $"Miss {NuGetDomain.NuSpecFileName} file,would you add it now?", "Warning",
                                                             OLEMSGICON.OLEMSGICON_WARNING, OLEMSGBUTTON.OLEMSGBUTTON_YESNO,
                                                             OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST);
                    if (dr != 6)
                    {
                        return;
                    }
                    new AddNuSpecCommand().Execute();
                }

                _assemblyInfo = _project.GetProjectAssemblyInfo();
                if (string.IsNullOrWhiteSpace(_assemblyInfo.FileVersion))
                {
                    _assemblyInfo.FileVersion = _assemblyInfo.Version;
                }
                _metadata = _project.GetManifestMetadata();

                var form = new DeployWizard(_metadata, _assemblyInfo, _ppp);
                form.StartPosition = FormStartPosition.CenterScreen;
                if (form.ShowDialog() == DialogResult.OK)
                {
                    form.SaveAndBuild();
                }
            }
        }
示例#2
0
        public MsbuildDeployWizard(ManifestMetadata metadata, PackageProjectProperties ppp, DirectoryBuildProps directoryBuildProps) : this()
        {
            _metadata            = metadata;
            _ppp                 = ppp;
            _directoryBuildProps = directoryBuildProps;
            _packageOldVersion   = _metadata.Version;

            if (_metadata.Version.IsAutoVersion())
            {
                _metadata.Version = Version.Parse(_metadata.Version).GetWildCardVersionString();
                _ppp.Version      = _ppp.AssemblyVersion = _ppp.FileVersion = _metadata.Version;
            }
        }
        public MsbuildDeployWizard(ManifestMetadata metadata, PackageProjectProperties ppp, DirectoryBuildProps directoryBuildProps) : this()
        {
            _metadata            = metadata;
            _ppp                 = ppp;
            _directoryBuildProps = directoryBuildProps;
            _packageOldVersion   = _metadata.Version;

            //if (_project.Properties.Item("Deterministic") != null &&
            //    Convert.ToBoolean(_project.Properties.Item("Deterministic").Value) == false)
            if (_metadata.Version.IsAutoVersion())
            {
                _metadata.Version = Version.Parse(_metadata.Version).GetWildCardVersionString();
                _ppp.Version      = _ppp.AssemblyVersion = _ppp.FileVersion = _metadata.Version;
            }
        }