博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Visual Studio .NET项目转换器(ProjectConverter)修改
阅读量:6620 次
发布时间:2019-06-25

本文共 3017 字,大约阅读时间需要 10 分钟。

Visual Studio .NET 项目转换器非常类似于ASP.NET版本转换器,区别在于它用于转换 Visual Studio 项目文件的版本。尽管在 .NET 框架的 1.0 版和 1.1 版之间只有很小的差异,但一旦将项目文件从 Visual Studio .NET 2002 转换到 Visual Studio .NET 2003,将无法再把它转换回去。虽然这在大多数时候可能不会成为问题(因为在 .NET 框架 1.0 版和 1.1 版之间几乎没有什么破坏性的更改),但在某些时刻你可能需要将项目转换回去。该转换器可以将任何解决方案或项目文件从 Visual Studio 7.1 (Visual Studio .NET 2003) 转换到 Visual Studio 7.0 (Visual Studio .NET 2002),并在必要时进行反向转换。

 原始程序:

这个程序的不方便之处:

1、不支持文件拖放,每次点击后面按钮流量项目解决文件还要找半天。

2、启动不在屏幕最中央。

3、不置顶。

针对以上情况修改完善,打开.NET Reflector导出工程源码,修复编译错误,

添加拖放支持:

private void fmMain_DragDrop(object sender, DragEventArgs e)        {            this.tbSolutionFile.Text = ((System.Array)e.Data.GetData(DataFormats.FileDrop)).GetValue(0).ToString();            try{                if ( this.VerifyVersion(this.GetVersion(this.tbSolutionFile.Text))==false ) {                    this.tbSolutionFile.Text = "";                }            }catch (Exception exception1) {                ProjectData.SetProjectError(exception1);                Exception exception = exception1;                Interaction.MsgBox("Error reading the solution file\r" + exception.Message, MsgBoxStyle.Critical, "Error");                ProjectData.ClearProjectError();                this.tbSolutionFile.Text = "";            }        }        private void fmMain_DragEnter(object sender, DragEventArgs e)        {            if (e.Data.GetDataPresent(DataFormats.FileDrop)) {                e.Effect = DragDropEffects.Link;            }else {                e.Effect = DragDropEffects.None;            }        }

置顶和屏幕居中:

private void fmMain_Load(object sender, EventArgs e)        {            AllowDrop = true;            CenterToScreen();            if (MyProject.Application.CommandLineArgs.Count == 1)            {                this.tbSolutionFile.Text = MyProject.Application.CommandLineArgs[0];                try                {                    this.VerifyVersion(this.GetVersion(this.tbSolutionFile.Text));                }                catch (Exception exception1)                {                    ProjectData.SetProjectError(exception1);                    Exception exception = exception1;                    Interaction.MsgBox("Error reading the solution file\r" + exception.Message, MsgBoxStyle.Critical, "Error");                    ProjectData.ClearProjectError();                }            }            TopMost = true;        }
[DebuggerNonUserCode]        public fmMain()        {            TopMost = true;            base.Load += new EventHandler(this.fmMain_Load);            base.DragEnter += new System.Windows.Forms.DragEventHandler(this.fmMain_DragEnter);            base.DragDrop += new System.Windows.Forms.DragEventHandler(this.fmMain_DragDrop);            __ENCList.Add(new WeakReference(this));            this.InitializeComponent();        }

修改完成后将原始程序的图标添加为资源,.NET Reflector导出的工程没有图标的,编译成功通过截图:

现在支持:

1、启动后屏幕居中显示。

2、置顶显示。

3、支持文件拖放,直接拖拽.sln文件到窗口即可。

编译后的exe文件放在csdn资源下载站:

修改后的C#源代码工程文件(可编译)也放在csdn资源下载站:

转载于:https://www.cnblogs.com/daxingxing/p/3641148.html

你可能感兴趣的文章
Greenplum merge insert 用法与性能 (insert on conflict)
查看>>
redo log buffer小结
查看>>
SAP Hybris Commerce 6.0发布,六大革新功能抢鲜看
查看>>
[原创]AKM项目逸事之入住酒店金卡会员
查看>>
KDB和Oracle的性能pk小记
查看>>
自动推荐系统效果为什么不好
查看>>
Mono for Android 优势与劣势
查看>>
【C++】成员函数重载二元和一元运算符
查看>>
“移”步到位:一站式移动应用研发体系
查看>>
ASP.NET状缓存Cache的应用-提高数据库读取速度
查看>>
WPF技术触屏上的应用系列(六): 视觉冲击、超炫系统主界面、系统入口效果实现...
查看>>
linux命令之ldconfig
查看>>
Python获取两个日期之间的列表
查看>>
Http服务器如何在HTTP response中传送二进制图片
查看>>
Spring boot quartz的相关资源
查看>>
ORA-00838: Specified value of MEMORY_TARGET is too small(转)
查看>>
Shell之sed命令
查看>>
如何让你的传输更安全——NIO模式和BIO模式实现SSL协议通信
查看>>
【云计算的1024种玩法】使用 NAS 文件储存低价获得好磁盘性能
查看>>
Android Framework Boot Up Overview(Android系统框架启动流程概述)
查看>>