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().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 == )
{
this.tbSolutionFile.Text = MyProject.Application.CommandLineArgs[];
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资源下载站:

http://download.csdn.net/detail/asmcvc/7136663

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

http://download.csdn.net/detail/asmcvc/7136693

Visual Studio .NET项目转换器(ProjectConverter)修改的更多相关文章

  1. 如何利用 Visual Studio 自定义项目或工程模板

    在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志.这个时候,是选择在开发的时候手动添加还是自动生成呢? 我们 ...

  2. Visual Studio 自定义项目或工程模板

    如何利用 Visual Studio 自定义项目或工程模板 在开发项目的时候,由其是商业性质的大型项目时,往往需要在每个代码文件上都加上一段关于版权.开发人员的信息,并且名称空间上都需要带有公司的标志 ...

  3. Visual studio 创建项目失败vstemplate

    Visual studio 创建项目失败 提示 the vstemplate file references the wizard class 'Microsoft.VisualStudio.WinR ...

  4. Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作

    Visual Studio 2017中使用正则修改部分内容   最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效 ...

  5. DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版及制作Visual Studio C#项目模板文件详解

    关于 DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  6. Visual Studio 编译项目失败,提示找不到文件

     博客地址:http://blog.csdn.net/FoxDave 今天碰到了一个蠢问题,虽然咱们正常情况下是遇不到的,但这确实是个应该注意的地方,所以简单记录一下. Visual Studio ...

  7. visual studio的项目属性表

    最近发现一个有趣的东西:visual studio的项目属性表 我下载了cocos2d-x-3.0alpha1,然后发现HelloLua项目配置里没有配include搜索目录和依赖库以及一个Marco ...

  8. Xamarin 中Visual Studio创建项目提示错误

    Xamarin 中Visual Studio创建项目提示错误 错误信息:Object reference not set to an instance of an object 出现这种情况,是由于没 ...

  9. Visual Studio关于项目迁移或拉取代码产生的dll黄色感叹号警告问题解决方案

    今天换了台大电脑,准备好好爽一下, 就把笔记本上的项目拷贝到了台式机上, 但是我没有拷贝解决方案整个文件夹,因为其中项目太多了,我就把其中一个项目的文件夹直接拷贝到电脑上,然后就出现了下面的情况. 这 ...

随机推荐

  1. 使用bower管理前端依赖

    bower,类似于npm.maven等后端管理构建工具一样,bower可以用来管理前端浏览器依赖,关于bower详细介绍参考官网:https://bower.io/ bower init命令:初始化项 ...

  2. Spring3.2.4集成quartz2.2.1定时任务(demo).

    在JavaEE系统中,我们会经常用到定时任务,下面是我自己写的一个demo. 前面几篇quartz博客感觉看的还是难懂 于是重新整理下 源码地址:http://pan.baidu.com/s/1BXH ...

  3. Html+css 练习写页面发现的错误及解决办法。

    最近开始模仿写一些静态页面,今天模仿的是中华咨询网.写了一个简单的js(功能:当鼠标hover一级菜单的时候,设置二级菜单为显示,当鼠标hover二级菜单的选项时候,二级菜单不收回.当鼠标移出菜单一级 ...

  4. JS深入了解闭包

    闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.   一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作 ...

  5. 给同为.NET开发者普及一点Oracle数据库经验

    前段时间,因为要给自己开发的搜易站内搜索引擎增加Oracle数据库的支持,所以学习了下Oracle的基础知识,发现使用方式跟MYSQL,MSSQL等数据库的思维有很大的不同,总结一下几点不同,希望给初 ...

  6. INFO - InstallShield中的InstallScript工程Setup.exe /s的使用细节

    在InstallShield的各种工程类型中,Basic MSI工程Build出的安装包基于Windows Installer标准,所以默认就支持静默安装(至于如何静默安装,请自行补充相关知识).而对 ...

  7. 阿里云产品介绍(二):云服务器ECS的孪生兄弟们

    上一篇介绍的云服务器ECS,是阿里云最基础的产品,也是每一个云计算厂商最基础的产品,俗称爆款.除了标准的云服务器,阿里云也不停的在推出面向特殊业务场地的云服务器,可以说是ECS的孪生兄弟们. 这一篇就 ...

  8. Javascript中的Prototype到底是啥

    Javascript也是面向对象的语言,但它是一种基于原型Prototype的语言,而不是基于类的语言.在Javascript中,类和对象看起来没有太多的区别. 通常,这样创建一个对象: functi ...

  9. gson 自定义对象转换格式

    有时候我们希望gson按照我们想要的方式转换,比如将日期转换为时间戳 class GsonBuilderUtil { public static Gson create() { GsonBuilder ...

  10. [转] Autofac创建实例的方法总结

    1.InstancePerDependency 对每一个依赖或每一次调用创建一个新的唯一的实例.这也是默认的创建实例的方式. 官方文档解释:Configure the component so tha ...