示例#1
0
        private UploadSolution ListupTargetFiles(DTE2 dte, OutputWindowPane pane)
        {
            ThreadHelper.ThrowIfNotOnUIThread();
            var currCursor = Cursor.Current;

            Cursor.Current = Cursors.WaitCursor;
            //	ソリューションアイテムへのアクセスはCOMベースになるため、UIスレッドで行うことにした(同期じゃないと面倒なため)
            var solution     = dte.Solution;
            var solutionPath = solution.FullName;

            if (solution == null || solution.Count == 0 || string.IsNullOrWhiteSpace(solutionPath) || !File.Exists(solutionPath) ||
                solution.Projects.Kind != EnvDTE.Constants.vsProjectsKindSolution)
            {
                pane.WriteLine($"ソリューションを開いていません。dte.Solution.FullName=\"{solutionPath}\"");
                return(null);
            }
            pane.WriteLine("すべてのファイルを保存しています。");
            //	すべて保存のコマンドを発行することで保存を行う
            dte.ExecuteCommand("File.SaveAll", "");

            //	ソリューションファイルを含むすべてのコピー対象アイテムをリストアップ
            var uploadSln = new UploadSolution(dte, pane);

            uploadSln.ListupUploadFiles();
            Cursor.Current = currCursor;
            return(uploadSln);
        }
示例#2
0
 private void UploadSolution(UploadSolution uploadSln)
 {
     if (uploadSln.IsExecute)
     {
         //	非同期に処理するけど待たない
         var task = Task.Run(uploadSln.UploadAllFilesAsync);
     }
 }