.net WinForm程序中调用Visual Studio IDE 中数据连接配置界面 (一个DLL搞定)
2012-12-24 16:03
441 查看
玩过直接调 数据库配置界面的一定对如下三个东西不陌生
Microsoft.Data.ConnectionUI.Dialog.dll -- 微软自带的数据连接配置界面库
Microsoft.Data.ConnectionUI.dll --微软自带的数据连接配置界面库
Microsoft.Data.ConnectionUI.Dialog.resources.dll 微软自带的数据连接配置界面库语言包
现在的问题是,这三个东西原生态的使用会造成发布exe 时候生成如下结构
App
---App.exe
---Microsoft.Data.ConnectionUI.Dialog.dll
---Microsoft.Data.ConnectionUI.dll
---zh-CN
---Microsoft.Data.ConnectionUI.Dialog.resources.dll
由于原生的DLL与语言包之间是使用.net 资源DLL(Microsoft.Data.ConnectionUI.Dialog.resources.dll)“Zh-CN” 对应关系,所有在应用程序的物理存储上面看上去不是太美观。介于此本人想整合三个DLL为一个DLL,直接在程序中使用,发布程序如下图所示的存储分布。
App
---App.exe
---DBConnectSetting.dll
一个 DBConnectSetting.dll 包含上述三个关键的DLL,也就是这次整合的核心关键。
解决思路
1、整合
Microsoft.Data.ConnectionUI.Dialog.dll
Microsoft.Data.ConnectionUI.dll
这两个是核心代码,所有的逻辑都在这个两个里面。
2、本地化整合后的
DBConnectSetting.dll 使其自生包含中文,不再外挂资源 Microsoft.Data.ConnectionUI.Dialog.resources.dll
实施过程:
1、整合两个 DLL 使用 ILMergeGui,注意是需要先安装ILMerge
ILMerge 下载地址:http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx
ILMergeGui 下载地址:https://ilmergegui.codeplex.com/
选择两个文件后后,合并输出即可。主要合并配置如下
2、本地化
使用DotNetHelper反编译 Microsoft.Data.ConnectionUI.Dialog.resources.dll ,提取所包含的资源文件,并使用带有Zh-CN 的资源文件替换不带有Zh-CN的资源文件,复制一份处理好的资源文件准备一下步的操作。
3、反编译合并后的文件DBConnectSetting.dll 同样输出上图中的资源文件,将刚才准备好的资源文件全部替换覆盖,再次使用DotNetHelper 重新编译。
最终生成的DBConnectSetting.dll 就是汉化好了的文件了。注:在这次整合的重新编译时候出现报错,重新编译不过去,后面注意观察是翻译后的资源文件字符串过长导致,个别资源文件报错,就使用 Resourcer for .NET 矫正一下即可。
4、完工!
程序中调用展示:
点击 更改数据源 可支持多数据源类型,这些都是微软这个组建自生支持的。
点击高级,可详细的配置连接字符串,也是这个微软原生 所支持的。
C# 中代码如下:
代码上很简单,其实也就是直接用微软写好的东西。
自己写也可以写,也不难,但是有现成的就用吧!
已编译好的DLL:http://download.csdn.net/detail/sliphades/4923214
Microsoft.Data.ConnectionUI.Dialog.dll -- 微软自带的数据连接配置界面库
Microsoft.Data.ConnectionUI.dll --微软自带的数据连接配置界面库
Microsoft.Data.ConnectionUI.Dialog.resources.dll 微软自带的数据连接配置界面库语言包
现在的问题是,这三个东西原生态的使用会造成发布exe 时候生成如下结构
App
---App.exe
---Microsoft.Data.ConnectionUI.Dialog.dll
---Microsoft.Data.ConnectionUI.dll
---zh-CN
---Microsoft.Data.ConnectionUI.Dialog.resources.dll
由于原生的DLL与语言包之间是使用.net 资源DLL(Microsoft.Data.ConnectionUI.Dialog.resources.dll)“Zh-CN” 对应关系,所有在应用程序的物理存储上面看上去不是太美观。介于此本人想整合三个DLL为一个DLL,直接在程序中使用,发布程序如下图所示的存储分布。
App
---App.exe
---DBConnectSetting.dll
一个 DBConnectSetting.dll 包含上述三个关键的DLL,也就是这次整合的核心关键。
解决思路
1、整合
Microsoft.Data.ConnectionUI.Dialog.dll
Microsoft.Data.ConnectionUI.dll
这两个是核心代码,所有的逻辑都在这个两个里面。
2、本地化整合后的
DBConnectSetting.dll 使其自生包含中文,不再外挂资源 Microsoft.Data.ConnectionUI.Dialog.resources.dll
实施过程:
1、整合两个 DLL 使用 ILMergeGui,注意是需要先安装ILMerge
ILMerge 下载地址:http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx
ILMergeGui 下载地址:https://ilmergegui.codeplex.com/
选择两个文件后后,合并输出即可。主要合并配置如下
2、本地化
使用DotNetHelper反编译 Microsoft.Data.ConnectionUI.Dialog.resources.dll ,提取所包含的资源文件,并使用带有Zh-CN 的资源文件替换不带有Zh-CN的资源文件,复制一份处理好的资源文件准备一下步的操作。
3、反编译合并后的文件DBConnectSetting.dll 同样输出上图中的资源文件,将刚才准备好的资源文件全部替换覆盖,再次使用DotNetHelper 重新编译。
最终生成的DBConnectSetting.dll 就是汉化好了的文件了。注:在这次整合的重新编译时候出现报错,重新编译不过去,后面注意观察是翻译后的资源文件字符串过长导致,个别资源文件报错,就使用 Resourcer for .NET 矫正一下即可。
4、完工!
程序中调用展示:
点击 更改数据源 可支持多数据源类型,这些都是微软这个组建自生支持的。
点击高级,可详细的配置连接字符串,也是这个微软原生 所支持的。
C# 中代码如下:
Microsoft.Data.ConnectionUI.DataConnectionDialog dlg = new Microsoft.Data.ConnectionUI.DataConnectionDialog(); //添加界面所支持的数据源类型 dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlDataSource); dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.AccessDataSource); dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.OdbcDataSource); dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.OracleDataSource); dlg.DataSources.Add(Microsoft.Data.ConnectionUI.DataSource.SqlFileDataSource); dlg.SelectedDataSource = Microsoft.Data.ConnectionUI.DataSource.SqlDataSource; dlg.SelectedDataProvider = Microsoft.Data.ConnectionUI.DataProvider.SqlDataProvider; //赋值一个已存在的连接字符串给界面控件 dlg.ConnectionString = this.ConnectString; Microsoft.Data.ConnectionUI.DataConnectionDialog.Show(dlg,owner); if (!String.IsNullOrEmpty(dlg.ConnectionString)) { //保存修改过的界面配置连接到文本 this.ConnectString = dlg.ConnectionString; }
代码上很简单,其实也就是直接用微软写好的东西。
自己写也可以写,也不难,但是有现成的就用吧!
已编译好的DLL:http://download.csdn.net/detail/sliphades/4923214
相关文章推荐
- Winform程序做一个界面来配置连接字符串。
- c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程
- c#Winform程序调用app.config文件配置数据库连接字符串
- winform 调用vs.net2005中的界面来配置连接字符串
- [VB.NET]在VB.NET开发程序时,如何制做一个欢迎界面?
- Delphi程序调用C#.Net编译的DLL并打开窗体(详解)
- 在ASP.NET项目中的web.config文件里配置数据库连接并在程序代码中获取连接字符串
- c++ .net winform 应用程序调用dll(gSOAP调用WebService)获取天气
- 做完一个小网站的一点经验总结(2):asp.netaccess程序运行环境的配置
- 用ASP.NET连接数据库写的一个登陆注册界面
- Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面
- VS2017 Winform调用dll程序打包
- Android中Activity启动模式详解,可以控制程序按home键后进来还会调用一个自己不喜欢的界面
- C# .net防止一个程序(WinForm)重复运行的方法。
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- C#程序双击运行之后,界面不显示,但是在任务管理器有进程(一个winform找bug之旅)
- 打造自己的 C# WinForm 应用程序的 SQL Server 连接配置界面
- C语言 + GTK3+ Visual Studio 2015环境配置 以及第一个GTK界面程序
- C# WinForm程序的App.Config数据库连接配置文件
- c# winform程序调用托管dll(c#的dll),使用"添加引用"和动态加载dll