小歐ou | 菜鳥自救會

努力工作,用心學習
文章數 - 1034, 回應數 - 1009, 引用數 - 0

每月文章

技術社群

技術部落格

關於我

[C#]建構 DLL 與 引用 DLL

 

一、問題描述

承接上一篇文章 [VB.NET]建構 DLL 與引用 DLL,相同的問題,使用 C# 撰寫,

以下將介紹如何 建構 DLL、引用 DLL、C# 引用 VB.NET 開發的 DLL、DLL 版本設定

 

二、方法

1. 建構DLL

1.1 [ 新增專案 ]  -> 選擇 [ 類別庫 ] -> 輸入適當的 [ 名稱 ] 、點選瀏覽選擇 [ 位置 ]

image

1.2 撰寫程式碼

image

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ClassLibrary1
{
    public class Class1
    {
        public double mySin(int intNum)
        {
            double dNum = 0;
            dNum = Math.Sin(intNum);
            return dNum;
        } 
    }
}

 

1.3 建置方案,於 Debug 目錄下取得 dll 檔

image

image

 

2. 引用 DLL

2.1 開啟新的專案,並且將 1.3 所產生的 DLL 加入參考

image

image

2.2 using

image

2.3 使用 DLL 中的 method,記得要將 Class New 出來,參考以下程式碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ClassLibrary1;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Class1 class1 = new Class1();
            double dNum = class1.mySin(20);
            MessageBox.Show(dNum.ToString());
        }
    }
}

2.4 執行結果

01

 

2.5 範例下載

CSharpDll.rar

 

3. C# 引用 VB.NET 所開發的 DLL

以下過程與上述 2. 引用 DLL 一模一樣,但引用的是 VB.NET 開發的 DLL

能直接使用的原因在於本範例使用的型別在 C# 與 VB.NET 都有,因此可以直接使用

 

3.1 開啟新的專案,並且將 [VB.NET]建構 DLL 與引用 DLL 範例中的 DLL 加入參考

image

image

3.2 using

image

3.3 使用 DLL 中的 method,記得要將 Class New 出來,參考以下程式碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ClassLibrary1;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Class1 class1 = new Class1();
            double dNum = class1.mySin(20);
            MessageBox.Show(dNum.ToString());
        }
    }
}

3.4 執行結果

01

 

4. DLL 版本設定

將 1.3 所產生的 DLL 檔案,在檔案圖示上 -> 按下 [ 滑鼠右鍵 ] -> [ 內容 ] -> 切換到 [ 版本 ] 頁籤,可看到此 DLL 版本相關資訊

該如何設定DLL 版本 ?

01 

4.1 在 [ 專案的名稱 ] 上 ( 本例方案名稱為 ClassLibrary1),按下 [ 滑鼠右鍵 ] -> [ 屬性 ] -> 點選 [ 組件資訊 ]

02

 

4.2 在 [ 組件資訊 ] 視窗中,可設定組件的相關設定,包含組件版本、檔案版本等

image

4.3 修改 組件版本 與 檔案版本 後,重新編譯,並且由檔案內容觀察版本值是否有改變

image

01

 




posted on 2009/6/22 11:26 我要推薦 | 閱讀數 : 83849 訂閱

關連文章

Feedback

# re: [C#]建構 DLL 與 引用 DLL 回覆

to 小歐,

找個時間順便把dll版本設定和產生.snk也補充上來吧!

這樣才是全套的嘛...ㄎㄎ

2009/6/22 下午 08:58 | hatelove

# re: [C#]建構 DLL 與 引用 DLL 回覆

To hatelove

這篇只是順便而已,我能力還沒那麼好,不過既然您提了,那我有空就看一下這部份,順便把文章補全套

2009/6/22 下午 11:23 | 小歐ou

# re: [C#]建構 DLL 與 引用 DLL 回覆

to 小歐ou :
參考的啦
http://www.dotblogs.com.tw/yc421206/archive/2009/04/14/8000.aspx

2009/6/23 上午 10:21 | yc421206

# re: [C#]建構 DLL 與 引用 DLL 回覆

請問一下在引用dll的時候,有辦法讓原先dll寫的物件摘要<summary>也顯示出來嗎? 例如我在類別庫的 mySin外加了參數 intNum 的說明, 在呼叫的時候快險文件也會顯示參數 intNum 的說明 。
2009/12/9 下午 12:11 | coolalex

# re: [C#]建構 DLL 與 引用 DLL 回覆

to coolalex :

http://msdn.microsoft.com/zh-tw/library/ms172669%28VS.80%29.aspx

 應該是都會顯示出來才對,我自己的類別庫建置完也是看的到summary跟參數的註解。

 

2009/12/9 下午 01:12 | 91

# re: [C#]建構 DLL 與 引用 DLL 回覆

我剛剛已經找到解答了,類別庫建置的時候要到類別庫-->屬性-->建置選擇輸出XML文件,然後在引用的時候除了原本的dll加入參考之外,還要把XML也加到同一個資料夾下,這樣在web form呼叫的時候就可以看到原本的summary了~~
2009/12/9 下午 04:21 | coolalex

# re: [C#]建構 DLL 與 引用 DLL 回覆

1.3 debug目錄下沒有的話可以去release目錄找一找

microsoft visual C# 2008 express版本 生出dll
專案->屬性->建置->進階->偵錯資訊"full"
2011/6/6 上午 09:07 | crazymonkey

# re: [C#]建構 DLL 與 引用 DLL 回覆

Dear 小歐~ 如果我寫的DLL(Kent.dll)裡面有

using System.Data.SqlServerCe;

那這樣我的DLL(Kent.dll)有沒有辦法將SQLCE的dll包在我的dll裡面

Kent.dll (24k)

System.Data.SqlServerCe.dll (283k)

變成

Kent.dll (307k)

2012/4/11 上午 11:21 | Kent

# re: [C#]建構 DLL 與 引用 DLL 回覆

不行,而且這樣也違反了 SQL Server CE 轉散布的授權合約 ...

2012/4/11 下午 12:26 | 小朱

# re: [C#]建構 DLL 與 引用 DLL 回覆

不愧为菜鸟自救会!

2012/11/2 下午 02:37 | king

# re: [C#]建構 DLL 與 引用 DLL 回覆

小歐大大寫的淺顯易懂

真是謝謝你的教學

2013/2/18 下午 03:46 | Cloud

回應

標題
姓名
電子郵件 (將不會被顯示)
個人網頁
內容 
  登入後使用進階評論  
Please add 2 and 6 and type the answer here:

Powered by: