大发娱乐场赢钱方法
IT資訊
當前位置:優樂網 > IT資訊 >  物聯網

如何生成多文件程序集

2020-01-22 21:56:00 木莊網絡博客 編輯:貝兒 瀏覽數:29優樂網

本文介紹如何創建多文件程序集,并提供用于說明過程中每個步驟的代碼。 備注:適用于 C# 和 Visual Basic 的 Visual Studio IDE 只能用于創建單文件程序集。 如果要創建多文件程序...

本文介紹如何創建多文件程序集,并提供用于說明過程中每個步驟的代碼。

備注:適用于 C# 和 Visual Basic 的 Visual Studio IDE 只能用于創建單文件程序集。 如果要創建多文件程序集,則必須使用命令行編譯器或帶有 Visual C++ 的 Visual Studio。 多文件程序集僅由 .NET Framework 支持。

創建多文件程序集

1、將包含程序集中其他模塊引用的命名空間的所有文件編譯成代碼模塊。 代碼模塊的默認擴展名為 .netmodule。

例如,假定 Stringer 文件具有一個名為 myStringer 的命名空間,其中包括一個名為 Stringer 的類。 Stringer 類包含名為 StringerMethod 的方法,此方法將單獨一行寫入控制臺。

// .NET框架中的程序集生成示例
using System;

namespace myStringer
{
    public class Stringer
    {
        public void StringerMethod()
        {
            System.Console.WriteLine("This is a line from StringerMethod.");
        }
    }
}

2、使用下面的命令編譯此代碼:

csc /t:module Stringer.cs

使用 /t: 編譯器選項指定 module 參數,表明文件應作為模塊(而不是作為程序集)編譯。 編譯器生成一個名為 Stringer.netmodule 的模塊,可將其添加到程序集中。

3、編譯所有其他模塊,使用必要的編譯器選項來表明代碼中引用的其他模塊。 此步驟使用 /addmodule 編譯器選項。

在下面的示例中,名為 Client 的代碼模塊具有一個入口點 方法,此方法引用創建于步驟 1 的 Stringer.dll 模塊中的方法Main。

using System;
using myStringer;

class MainClientApp
{
    // 靜態方法Main是入口方法
    public static void Main()
    {
        Stringer myStringInstance = new Stringer();
        Console.WriteLine("Client code executes");
        myStringInstance.StringerMethod();
    }
}

4、使用下面的命令編譯此代碼:

csc /addmodule:Stringer.netmodule /t:module Client.cs

指定 /t:module 選項,因為此模塊將在以后的步驟中添加到程序集。 Client 中的代碼會引用 Stringer.netmodule 中的代碼創建的命名空間,因此請指定 /addmodule 選項。 編譯器生成一個名為 Client.netmodule 的模塊,其中包含對另一個模塊 Stringer.netmodule 的引用。

備注:C# 和 Visual Basic 編譯器支持使用以下兩種不同語法直接創建多文件程序集。兩次編譯創建出一個雙文件程序集:

csc /t:module Stringer.cs
csc Client.cs /addmodule:Stringer.netmodule

一次編譯創建出一個雙文件程序集:

csc /out:Client.exe Client.cs /out:Stringer.netmodule Stringer.cs

5、使用程序集鏈接器 (Al.exe) 來創建包含程序集清單的輸出文件。 此文件包含作為程序集組成部分的所有模塊或資源的參考信息。

在命令提示符處,鍵入下列命令:

al <module name> <module name> … /main:<method name> /out:<file name> /target:<assembly file type>

在此命令中,“module name”參數指定程序集要包含的各模塊的名稱。 /main: 選項指定作為程序集入口點的方法名稱。 /out: 選項指定輸出文件的名稱,它包含程序集元數據。 /target: 選項指定程序集是控制臺應用程序可執行文件 (.exe)、Windows 可執行文件 (.win) 或庫文件 (.lib)。

分享到:

版權與免責聲明:

凡未注明"稿件來源"的內容均為轉載稿,本網轉載出于傳遞更多信息的目的;如轉載稿涉及版權問題,請作者聯系我們,同時對于用戶評論等信息,本網并不意味著贊同其觀點或證實其內容的真實性;


本文地址:http://www.xmvpuw.shop/news/2020/01/22/263038639.html

轉載本站原創文章請注明來源:優樂網

行業聚焦

24期免息+贈半年全身保:vivo NEX 3S手機100元預售

IT之家3月11日消息 昨日發布的 vivo NEX 3S 新機現已開啟全面預售,支付100元定金可享24期免息+贈半年vivo ...[詳細]

realme 6/6 Pro 將于明天在歐洲首次亮相

IT之家3月30日消息 據realme歐洲官方推特,realme 6系列將于當地時間3月31日10:00(北京時間下午16:00)在歐洲發布。此前該系...[詳細]

三大運營商加碼5G新基建

國內5G“新基建”正在加速推進。3月4日,在中共中央政治局常務委員會召開的會議上,決策層強調,要加快推進國家規劃已明確的重大工程和基礎設施建設,其中要加快 5G...[詳細]

給三星Galaxy S20讓路,Galaxy S10系列大降價

IT之家2月12日消息 三星全新機皇Galaxy S20系列已經發布,也許是為了給新機讓路,三星官網開始啟動了Galaxy S10系列的降價促銷活動。目前在三星...[詳細]

草根站長故事之:我的業余站長之路(上)

就在今天,我的小站百度聯盟廣告收入終于突破200元人民幣,雖然這點錢還不夠買春運回家的車票,但是著實讓我興奮了一回,也突然就有了寫點什么的沖動。記得我最早觸網的...[詳細]

智科技

更多

C#冒泡排序功能返回數據類型不一致?代碼問題還是文件設置問題?

 

在VS代碼中,對于C#來說是全新的,而對于C#來說則是全新的。我不確定我的代碼或應用程序文件是否存在問題,無論哪種情況,...[詳細]

搭載麒麟810,華為nova 7i海外全面預裝HMS服務

 

IT之家2月14日消息 華為馬來西亞今天正式開啟華為nova 7i手機的預購,搭載了打孔顯示屏,后置4800萬...[詳細]

谷歌反駁歐盟26億美元重罰裁決:威脅互聯網創新

 

2月13日消息,據外媒報道,在歐盟中級法院“綜合法院”為期三天的聽證會上,谷歌對歐盟委員會2017年對其開出26億美元罰...[詳細]

自媒體時代,網站還值得做嗎?

 

新媒體群起的時代,還有沒有必要玩網站呢?有必要,而且還存在很多機會,今天我們來重點探討下:尤其是今年,疫情嚴重,現在還有...[詳細]

微軟:Windows 10 1809版將于2020年5月12日終止支持

 

IT之家2月15日消息 當地時間2月13日,微軟宣布Windows 10版本1809將在2020年5月12日正...[詳細]

一周排行每月關注
大发娱乐场赢钱方法 007体育球探比分直播 青海十一选五开奖结 欧亚足球指数比较 江苏十一选五今天结 排列三跨度走势图带 今日竞彩足球比分推荐预测 腾讯彩票足球比分直播 吉林快三 快播a级片网址 3d独胆王预测 麻将国标规则八番起胡 网球球探比分 宁波7百搭麻将 3d开机号 妈祖日本女优剧全集下载 宁夏11选五走势图