當前位置:首頁 » 編程軟體 » net什麼文件可以編譯成dll

net什麼文件可以編譯成dll

發布時間: 2022-05-29 12:10:55

Ⅰ .net中怎樣寫dll文件

使用csc命令將.cs文件編譯成.dll的過程很多時候,我們需要將.cs文件單獨編譯成.dll文件, 操作如下:打開命令窗口->輸入cmd到控制台->cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322轉到vs.net安裝的該目錄下->執行csc命令csc /target:library File.cs->在該目錄下產生一個對應名字的.dll文件(前提:把.cs文件放到C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322目錄下)csc命令的方式很多,請參考以下譯File.cs 以產生 File.execsc File.cs 編譯 File.cs 以產生 File.dllcsc /target:library File.cs 編譯 File.cs 並創建 My.execsc /out:My.exe File.cs 通過使用優化和定義 DEBUG 符號,編譯當前目錄中所有的 C# 文件。輸出為 File2.execsc /define:DEBUG /optimize /out:File2.exe *.cs 編譯當前目錄中所有的 C# 文件,以產生 File2.dll 的調試版本。不顯示任何徽標和警告csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs 將當前目錄中所有的 C# 文件編譯為Something.xyz(一個 DLL)csc /target:library /out:Something.xyz *.cs 編譯 File.cs 以產生 File.dllcsc /target:library File.cs這個就是我們使用最多的一個命令,其實可以簡單的寫成csc /t:library File.cs,另外的一個寫法是 csc /out:mycodebehind.dll /t:library mycodebehind.cs,這個可以自己指定輸出的文件名。csc /out:mycodebehind.dll /t:library mycodebehind.cs mycodebehind2.cs,這個的作用是把兩個cs文件裝到一個.dll文件里舉例(摘於網路)一、 動態鏈接庫 什麼是動態鏈接庫?DLL三個字母對於你來說一定很熟悉吧,它是Dynamic Link Library 的縮寫形式,動態鏈接庫(DLL) 是作為共享函數庫的可執行文件。動態鏈接提供了一種方法,使進程可以調用不屬於其可執行代碼的函數。函數的可執行代碼位於一個 DLL 中,該 DLL 包含一個或多個已被編譯、鏈接並與使用它們的進程分開存儲的函數。DLL 還有助於共享數據和資源。多個應用程序可同時訪問內存中單個 DLL 副本的內容。 和大多數程序員一樣,你一定很使用過DLL吧。也曾感受到它的帶給你程序設計和編碼上的好錯吧今天我想和大家探討一個主題:如何在C#創建和調用DLL(動態鏈接庫), 其實在很大意義上而講,DLL讓我更靈活的組織編寫我們的應用程序,作為軟體設計者,可一個根據它來達到很高的代碼重用效果。下面我來介紹一下在C#中如何創建和調用DLL。二、准備工作 我們需要對我們接下來要做的事情做個簡單的介紹,在本文我們將利用C#語言創建一個名為 MyDLL.DLL的動態鏈接庫,在這個動態鏈接庫文件中我們將提供兩個功能一個是對兩個參數交換他們的值,另一個功能是求兩個參數的最大公約數。然後創建一個應用程序使用這個DLL。運行並輸出結果。三、創建DLL讓我們創建以下三個C#代碼文件:1、 MySwap.csview plain to clipboardprint?//該語句不要加入到程序中using System; namespace MyMethods { public class SwapClass { public static bool Swap(ref long i,ref long j) { i = i+j; j = i-j; i = i-j; return true; } } }2、MyMaxCD.csview plain to clipboardprint?//該語句不要加入到程序中using System; namespace MyMethods { public class MaxCDClass { public static long MaxCD(long i, long j) { long a,b,temp; if(i>j) { a = i; b = j; } else { b = i; a = j; } temp = a % b; while(temp!=0) { a = b; b = temp; temp = a % b; } return b; } } } 需要注意的是:我們在製作這兩個文件的時候可以用Visual Studio.NET或者其他的文本編輯器,就算是記事本也可以。這兩個文件雖然不在同一個文件裡面,但是他們是屬於同一個namespace(名稱空間)這對以後我們使用這兩個方法提供了方便。當然他們也可以屬於不同的名稱空間,這是完全可以的,但只是在我們應用他們的時候就需要引用兩個不同的名稱空間,所以作者建議還是寫在一個名稱空間下面比較好。 接下來的任務是把這兩個cs文件變成我們需要的DLL文件。方法是這樣的:在安裝了Microsoft.NET Framework的操作系統上,我們可以在Windows所在目錄下找到Microsoft.NET目錄。在這個目錄下面提供了C#的編譯器,CSC.EXE運行:csc /target:library /out:MyDLL.DLL MySwap.cs MyMaxCD.cs,完成後可在本目錄下面找到我們剛才生成的MyDLL.DLL文件/target:library 編譯器選項通知編譯器輸出 DLL 文件而不是 EXE 文件。後跟文件名的 /out 編譯器選項用於指定 DLL 文件名。如果/out後面不跟文件名編譯器使用第一個文件 (MySwap.cs) 作為 DLL 文件名。生成的文件為MySwap.DLL文件。 OK!我們創建動態鏈接庫文件的任務完成了,現在是我們享受勞動成果的時候了,下面我將介紹如何使用我們所創建的動態鏈接庫文件。 四、使用DLL 我們簡單寫一個小程序來測試一下我們剛才寫的兩個方法是否正確,好吧,跟我來:MyClient.csview plain to clipboardprint?//該語句不要加入到程序中using System; using MyMethods; //這里我們引用剛才定義的名稱空間,如果剛才的兩個文件我們寫在兩個不同的名稱空間 class MyClient { public static void Main(string[] args) { if (args.Length != 2) { Console.WriteLine("Usage: MyClient <num1> <num2>"); return; } long num1 = long.Parse(args[0]); long num2 = long.Parse(args[1]); SwapClass.Swap(ref num1,ref num2); // 請注意,文件開頭的 using 指令使您得以在編譯時使用未限定的類名來引用 DLL 方法 Console.WriteLine("The result of swap is num1 = {0} and num2 ={1}",num1, num2); long maxcd = MaxCDClass.MaxCD(num1,num2); Console.WriteLine("The MaxCD of {0} and {1} is {2}",num1, num2, maxcd); } }若要生成可執行文件 MyClient.exe,請使用以下命令行:csc /out:MyClient.exe /reference:MyLibrary.DLL MyClient.cs/out 編譯器選項通知編譯器輸出 EXE 文件並且指定輸出文件名 (MyClient.exe)。/reference 編譯器選項指定該程序所引用的 DLL 文件。五、執行若要運行程序,請輸入 EXE 文件的名稱,文件名的後面跟兩個數字,例如:MyClient 123 456六、輸出The result of swap is num1 = 456 and num2 = 123The MaxCD of 456 and 123 is 3七、小結動態鏈接具有下列優點: 1、節省內存和減少交換操作。很多進程可以同時使用一個 DLL,在內存中共享該 DLL 的一個副本。相反,對於每個用靜態鏈接庫生成的應用程序,Windows 必須在內存中載入庫代碼的一個副本。 2、節省磁碟空間。許多應用程序可在磁碟上共享 DLL 的一個副本。相反,每個用靜態鏈接庫生成的應用程序均具有作為單獨的副本鏈接到其可執行圖像中的庫代碼。 3、升級到 DLL 更為容易。DLL 中的函數更改時,只要函數的參數和返回值沒有更改,就不需重新編譯或重新鏈接使用它們的應用程序。相反,靜態鏈接的對象代碼要求在函數更改時重新鏈接應用程序。 4、提供售後支持。例如,可修改顯示器驅動程序 DLL 以支持當初交付應用程序時不可用的顯示器。 5、支持多語言程序。只要程序遵循函數的調用約定,用不同編程語言編寫的程序就可以調用相同的 DLL 函數。程序與 DLL 函數在下列方面必須是兼容的:函數期望其參數被推送到堆棧上的順序,是函數還是應用程序負責清理堆棧,以及寄存器中是否傳遞了任何參數。 6、提供了擴展 MFC 庫類的機制。可以從現有 MFC 類派生類,並將它們放到 MFC 擴展 DLL 中供 MFC 應用程序使用。 7、使國際版本的創建輕松完成。通過將資源放到 DLL 中,創建應用程序的國際版本變得容易得多。可將用於應用程序的每個語言版本的字元串放到單獨的 DLL 資源文件中,並使不同的語言版本載入合適的資源。 使用DLL 的一個潛在缺點是應用程序不是獨立的;它取決於是否存在單獨的 DLL 模塊。以上為轉載

Ⅱ c#.net怎麼將自定義控制項的.cs文件編譯成.dll控制項

引用多個外部程序集,使用單個/reference選項,要使用分號分隔的列表指定每個程序集:
csc
/t:library
/out:MyCodeLibrary.dll
/r:MyCodeLibrary.dl;NewLib.dll
simpleType.cs

Ⅲ ASP.NET中的如何將.cs文件編譯成.dll文件

伺服器上沒有CS文件是因為是已經發布過的,假如你改ABC.ASPX.CS這個頁面,改完後先把程序發布一下,找到ABC.ASPX先覆蓋到伺服器上,然後看這個頁面源碼第一行,最後有個APP_WEB_????,然後找你剛發布的BIN文件夾找以這個DLL放到伺服器的BIN里就行了。

Ⅳ 關於asp.net中的CS文件怎麼生成DLL文件

例如有index.aspx

index.aspx.cs
兩個文件,
現在要把index.aspx.cs
編譯成
DLL
文件,可以這樣寫:
csc
/out:yourdir\index.dll
/t:library
/r:bin/myConnBase.dll
index.aspx.csTop
生成的index.dll需放在你的虛擬目錄根下的bin下即可。或你的網站根下的bin文件夾中

Ⅳ C#.net 怎麼生成dll

在你的項目裡面添加個類庫(文件->添加->新建項目->類庫) 然後把這個類庫在你的項目裡面添加引用 這個類庫最後生成的就是 動態鏈接庫 文件了 添加引用後 項目會自動調用dll裡面的東西

添加引用

在解決方案資源管理器裡面 右鍵"引用"節點 "添加引用" 瀏覽到你生成的dll文件即可 或者你可以直接選擇項目標簽 瀏覽到類庫項目即可

再以後的項目中 如果有同樣的或者類似的東西要做 比如說資料庫訪問的一些內容都寫到類庫里 以後用到的時候直接在現有項目里添加引用就行了 這樣省去了代碼的重新編寫 這樣就實現了代碼的重用性

Ⅵ 怎樣把ASP。NET中的CS文件編譯成DLL文件

如果希望從計算機上的任何子目錄調用 csc.exe,可能需要調整路徑。 命令行語法規則 當解釋操作系統命令行上給出的參數時,C# 編譯器代碼使用下面的規則: 參數用空白分隔,空白可以是一個空格或製表符。 ^ 字元 (^) 未被識別為轉義符或者分隔符。該字元在被傳遞給程序中的 argv 數組前,完全由操作系統的命令行分析器進行處理。 無論其中有無空白,包含在雙引號 ("string") 中的字元串均被解釋為單個參數。帶引號的字元串可以嵌入在參數內。 前面有反斜杠的雙引號 (\") 被解釋為原義雙引號字元 (")。 反斜杠按其原義解釋,除非它們緊位於雙引號之前。 如果偶數個反斜杠後跟雙引號,則每對反斜杠中的一個反斜杠放置在 argv 數組中,並且雙引號被解釋為字元串分隔符。 如果奇數個反斜杠後跟雙引號,則每對反斜杠中的一個反斜杠放置在 argv 數組中,雙引號由其餘的反斜杠「轉義」,使原義雙引號 (") 被放置在 argv 數組中。 命令行示例編譯 File.cs 以產生 File.exe: csc File.cs 編譯 File.cs 以產生 File.dll: csc /target:library File.cs 編譯 File.cs 並創建 My.exe: csc /out:My.exe File.cs 通過使用優化和定義 DEBUG 符號,編譯當前目錄中所有的 C# 文件。輸出為 File2.exe: csc /define:DEBUG /optimize /out:File2.exe *.cs 編譯當前目錄中所有的 C# 文件,以產生 File2.dll 的調試版本。不顯示任何徽標和警告:

Ⅶ ASP.NET有什麼辦法可以直接把文件夾和其中的.cs編譯成dll文件嗎。

Win + R -> cmd ->回車 ->cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
csc XXXXX.cs
這樣就編譯單個cs文件了,不過要求這些CS文件都沒有引用其他的類庫,否則參數很長,我也不記得了,你可以網路csc命令編譯C#代碼等關鍵字

Ⅷ 如何在.Net的C#中製作DLL文件

編輯生成DLL文件

打開Microsoft Visual Studio 2010, 新建【windows窗體應用程序】的項目。

在項目的基礎上新建類庫,點擊右鍵,【添加】-【新建項目】。

選擇【類庫】,名稱為【ini】。

在新增的類庫項目中編輯代碼,新增class為【Read_ini】。

新增方法【ReadIniValue】,從類別、關鍵字、文件目錄中獲取參數。
設置臨時值讀取參數;
設置是否比較本行數據的標志位;
讀取整個文本數據,如果是空行或數據行,則繼續讀取。

在讀取的行數據中分別判斷類別和關鍵字,找到目標參數。

返回目標參數給主程序。

代碼編輯完成後,在項目上右鍵生成DLL。

在debug目錄中可以看到生成的ini.dll文件。

將ini.dll文件復制到主項目的debug目錄下。

Ⅸ .net CS文件編譯成DLL

1.編譯使用csc.exe編譯就可以了,你有vs為啥不用vs直接編譯???
2.反編譯很難,沒有官方的軟體!但是可以用SDK裡面的反匯編工具
3.是的!
4.我沒有學過Java,但是類庫是一個程序的集合,就是程序集,他可能是一個沒有main函數的程序,也可能有,但是他的功能就是給別的程序調用用的。
5.當然那是你在發布自己的程序時候自動生成的,有生成選項你可以看看,一般直接生成的話都是一頁一個類庫(dll),當然你也可以一個一個類庫的寫。
6.dll就是一個打不開的應用程序,你可以做一個exe程序,把它編譯成exe就可以打開,編譯成dll就打不開了。但是可以被別的程序引用,使用這個本來應該是exe的dll的程序裡面的功能!
7.在vs的解決方案管理器裡面右鍵直接添加引用就可以了!
話外:不單單是dll可以被引用啊,exe也是可以被別的程序引用啊!

熱點內容
vps伺服器adsl動態ip 發布:2024-05-01 02:15:49 瀏覽:778
python成員函數 發布:2024-05-01 01:26:03 瀏覽:377
編程貓小愛 發布:2024-05-01 01:25:18 瀏覽:32
pythonwhile 發布:2024-05-01 00:04:25 瀏覽:730
c語言用中文寫代碼能編譯通過嗎 發布:2024-04-30 23:59:18 瀏覽:537
小X分身存儲隔離 發布:2024-04-30 23:54:50 瀏覽:758
安卓電話錄音怎麼使用 發布:2024-04-30 23:42:38 瀏覽:414
windows運行python 發布:2024-04-30 23:38:18 瀏覽:784
節奏大師安卓腳本 發布:2024-04-30 23:25:18 瀏覽:422
ftp上傳進度 發布:2024-04-30 23:11:23 瀏覽:884