1. 程式人生 > >.net WinForm程式中呼叫Visual Studio IDE 中資料連線配置介面 (一個DLL搞定)

.net WinForm程式中呼叫Visual Studio IDE 中資料連線配置介面 (一個DLL搞定)

玩過直接調 資料庫配置介面的一定對如下三個東西不陌生

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

選擇兩個檔案後後,合併輸出即可。主要合併配置如下

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;
            }

程式碼上很簡單,其實也就是直接用微軟寫好的東西。

自己寫也可以寫,也不難,但是有現成的就用吧!

相關推薦

.net WinForm程式呼叫Visual Studio IDE 資料連線配置介面 (一個DLL

玩過直接調 資料庫配置介面的一定對如下三個東西不陌生 Microsoft.Data.ConnectionUI.Dialog.dll -- 微軟自帶的資料連線配置介面庫 Microsoft.Data.ConnectionUI.dll --微軟自帶的資料連線配置介面庫 Micr

Visual Studio IDE快速進行h檔案和cpp檔案切換的巨集

新建一個巨集模組,把以下程式碼複製到模組中儲存,然後選擇“工具->選項->環境->鍵盤”,在顯示命令包含中輸入SourceHeaderJumper找到相應命令,選中後繫結一個快捷鍵即可。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

Visual Studio 2010 創建 ASP.Net Web Service

準備 visual sdn 自己 pac arp 多人 blog als http://blog.csdn.net/yapingxin/article/details/7331375 很多人在論壇裏說,在Visual Studio 2010中不能創建“ASP.Net Web

Visual Studio 2017,.NET(C#)通過Oracle.ManagedDataAccess來連接Oracle數據庫

成了 lin cnblogs img 輸入 cli acl 程序 選擇 C#如何通過Oracle.ManagedDataAccess來連接Oracle數據庫 1、先創建一個項目,鼠標右擊項目中的引用,再點擊管理NuGet程序包(也可以先下載dll文件,再選添加引用),在搜索

Visual Studio 2017使用SourceLink除錯ASP.NET Core原始碼

背景 當我們在學習ASP.NET Core或者除錯ASP.NET Core程式的時候,有時候需要除錯底層程式碼,但是當我們在Visual Studio中除錯程式的時候,由於一些基礎庫或者第三方庫缺少pdb檔案,所以除錯這些庫的程式碼的時候,會出現斷點不能進去的情況。 例如,在如下程式碼中,我們希望除錯

Visual Studio 2013.dll檔案的顯式呼叫方法

為什麼需要dll      程式碼複用是提高軟體開發效率的重要途徑。一般而言,只要某部分程式碼具有通用性,就可將它構造成相對獨立的功能模組並在之後的專案中重複使用。比較常見的例子是各種應用程式框架,

【廣州.NET社群推薦】【譯】Visual Studio 2019 WPF & UWP 的 XAML 開發工具新特性

原文 | Dmitry 翻譯 | 鄭子銘 自Visual Studio 2019推出以來,我們為使用WPF或UWP桌面應用程式的XAML開發人員釋出了許多新功能。在本週的 Visual Studio 2019 版本 16.4 和 16.5 Preview 1中,我們希望藉此機會回顧一下全年的新變化。如果您錯過

【Asp.Net Core】一、Visual Studio 2015 和 .NET Core 安裝

過濾器 int 3.2 屬性和方法 static 資料 c3p0 案例 handling 安裝 Visual Studio 和 .NET Core 1、安裝 Visual Studio Community 2015,選擇 Community 下載並執行默認安裝。Visual

Visual Studio Debugger七個鮮為人知的小功能

.cn disable 轉載 解決問題 內存 初始 -668 調試工具 利用 Visual Studio debugger是一個很棒的調試工具,可以幫助程序猿們快速地發現和解決問題。這裏給大家簡單介紹一下VS調試工具中的七個鮮為人知的小功能。 1. 一鍵跳轉到指定語句

微軟移除Visual Studio 2015的UML

世紀 價值 rdquo arc 必須 lan uml 其中 產品 微軟已經在Visual Studio 2015中移除了UML(Unified Modeling Language,統一建模語言),原因是該語言使用率過低。因此微軟要優化產品結構,把好鋼用在刀刃上。 Visu

Visual Studio 2015 關閉 Browser Link

ebr errors spa style set add web log ble 從 Visual Studio 2013 起,增加了Browser Link功能。實際上,是一個很討厭的東西(不知道功用是什麽),在debug mode下,一直向瀏覽器的debug cons

Visual studio 2017 的Javascript智能提示

內容 工具 csdn uid 下界 target 拖動 js調試 腳本 1、智能提示 對於JS文件中的API,你若需要讓那個JS文件中的方法能夠在你寫的那個JS文件中能夠智能顯示的話,直接把它拉進你的JS文件中就好了。 舉個例子:你想 在你正在寫的a.js文件中引用b

Visual Studio CodeJavaScript開發環境的配置

擴展 下載 ner con 針對 文件夾 技術 一個 添加   Visual Studio Code簡稱VS Code,是一款由微軟公司免費開源的現代化輕量級代碼編輯器,幾乎支持所有的主流開發語言的語法高亮、自定義熱鍵、代碼片段、括號匹配等諸多特性,還支持插件擴展,並針對網

C#基礎總結(二 —— C#開發工具 Visual Studio(IDE)

暫停 基本上 必備 img 包含 adl 裏的 方案 運行 一、Visual Studio   Visual Studio 是微軟公司的一個開發工具集,是C#開發必備利器。下面附上VS2013簡體中文社區版的下載地址:    鏈接:https://pan.baidu.com

windows通過Visual Studio Code配置GO開發環境(轉)

fin gpe def 微軟 sqs oba 安裝插件 包括 ont 一、GO語言安裝 詳情查看:GO語言下載、安裝、配置 二、GoLang插件介紹 對於Visual Studio Code開發工具,有一款優秀的GoLang插件,它的主頁為:https://gith

Visual Studio 2017安裝bower

png val web 4.0 項目 http mage .net oot 在項目目錄下添加一個文件.bowerrc { "directory": "wwwroot/lib" } JS包默認安裝到webroot的lib文件夾,可以通過.bowerrc文件更改安裝路徑

Create A .NET Core Development Environment Using Visual Studio Code

https://www.c-sharpcorner.com/article/create-a-net-core-development-environment-using-visual-studio-code2/ https://www.cnblogs.com/yilezhu/p/9926078.html

visual studio 2013使用scss

前提是,你已經安裝了Sass,Sass教程傳送門,按照教程一步一步來,已經很詳細了。 1、安裝兩個Visual Studio相容Sass的外掛,需要翻牆,我沒翻牆,不到30M下了半小時 https://marketplace.visualstudio.com/items?itemName

Visual Studio Codegit的使用

切換分支 git checkout 分支名稱 淘寶映象:cnpm install 啟動專案:npm run dev 同步原生代碼 git pull 暫存:git add . 提交到本地版本:git commit -m “登入頁面樣式修改” 提交到遠端倉庫:git

Visual Studio 2017使用Libman管理客戶端庫

什麼是Libman 微軟在Visual Studio 2017 15.8版本中內嵌了一個新的工具Library Manager。 Library Manager(簡稱Libman)是一個客戶端庫管理工具, 使用它可以很容易的管理專案中使用的客戶端js庫, css庫等,Libman相當於一個針對客戶端庫的Nu