Beispiel #1
0
        void tsbExportToCSProject_Click(object sender, EventArgs e)
        {
            if (document == null)
            {
                return;
            }

            SaveFileDialog sfd = new SaveFileDialog();

            sfd.Title  = "保存C#项目";
            sfd.Filter = "C# 项目文件(*.csproj)|*.csproj";
            if (sfd.ShowDialog(this) == DialogResult.OK)
            {
                try
                {
                    document.SaveAsCsProject(sfd.FileName);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, "保存失败," + ex.Message, "提示");
                    return;
                }
            }
        }
Beispiel #2
0
        void Publish(BackgroundWorker bw, string settingsFile)
        {
            ClickOnceConfigFile config = new ClickOnceConfigFile(settingsFile);
            string publishPath         = config.PropertyItems.PublishUrl;

            bw.ReportProgress(5, "初始化临时目录...");
            string templatePath = Properties.Settings.Default.TemplatePath;
            string projectPath  = Path.Combine(publishPath, Guid.NewGuid().ToString("N").ToLower());

            if (!Directory.Exists(projectPath))
            {
                Directory.CreateDirectory(projectPath);
            }

            bw.ReportProgress(5, "生成C#项目...");
            string projectFile = Path.Combine(projectPath, "loader.csproj");

            config.SaveAsCsProject(projectFile);

            bw.ReportProgress(5, string.Format("正在编译{0}...", projectFile));
            CmdMSBuild(projectFile);

            //复制
            bw.ReportProgress(5, string.Format("复制到{0}...", publishPath));
            string appPublish = Path.Combine(projectPath, @"bin\Release\app.publish");

            if (Directory.Exists(appPublish))
            {
                Common.MoveDirectory(appPublish, publishPath, null);
            }

            bw.ReportProgress(5, string.Format("清理临时目录{0}...", publishPath));
            Directory.Delete(projectPath, true);

            bw.ReportProgress(100, "操作完成。");
        }
        /// <summary>
        /// 按配置生成保存为C#项目。
        /// </summary>
        /// <param name="filename"></param>
        public static void SaveAsCsProject(string configFile, string projectFile)
        {
            ClickOnceConfigFile config = new ClickOnceConfigFile(configFile);

            config.SaveAsCsProject(projectFile);
        }