[發明專利]用于托管程序集的增量式生成的方法和系統有效
| 申請號: | 201210053833.5 | 申請日: | 2012-03-02 |
| 公開(公告)號: | CN102707982B | 公開(公告)日: | 2017-06-09 |
| 發明(設計)人: | G·A·P·伊巴拉;P·維拉森 | 申請(專利權)人: | 微軟技術許可有限責任公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 上海專利商標事務所有限公司31100 | 代理人: | 蔡悅 |
| 地址: | 美國華*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 托管 匯編 增量 生成 | ||
1.一種用于增量式地生成托管程序集的計算機實現的方法,所述計算機實現的方法包括執行計算機實現的操作,所述操作用于:
生成包括多個類型(204、702、704)的主程序集(202、700);
檢測所述多個類型(204、702、704)中的特定類型(704)的類型改變;
生成包括反映該特定類型(704)的類型改變的已改變的類型(210、712)的新程序集(208、710);以及
用來自所述新程序集(208、710)的已改變的類型(210、712)來替換所述主程序集(202、700)中的該特定類型(704)。
2.如權利要求1所述的計算機實現的方法,其特征在于,所述已改變的類型引用來自所述主程序集的多個類型中的至少一個其他類型。
3.如權利要求2所述的計算機實現的方法,其特征在于,所述主程序集包括單個動態鏈接庫(.dll)文件,該單個動態鏈接庫文件包括公共中間語言(CIL)代碼以及程序集清單。
4.如權利要求1所述的計算機實現的方法,其特征在于,生成所述主程序集和所述新程序集包括,利用.NET框架類庫(FCL)的System.Reflection.Emit命名空間內的中間語言代碼生成器(IL生成器)類來生成所述主程序集和所述新程序集。
5.如權利要求1所述的計算機實現的方法,其特征在于,用來自所述新程序集的已改變的類型來替換所述主程序集中的特定類型包括,利用由公共編譯器基礎結構(CCI)框架所提供的功能、用來自所述新程序集的已改變的類型來替換所述主程序集中的特定類型。
6.一種用于托管程序集的增量式生成的方法,包括:
將以托管編程語言編寫的源代碼(102)編譯成公共中間語言(CIL)代碼和元數據,由此生成程序集(116、500),所述程序集(116、500)包括:
包含程序集清單(122)的動態鏈接庫(.dll)文件(502),所述程序集清單(122)包括所述元數據,以及
包括所述CIL代碼的多個.net模塊文件(124、126、504、510);
將所述程序集(116、500)表示在文件系統的第一位置中;
檢測所述多個.net模塊文件(124、126、504、510)中的一.net模塊文件(124、510)內的類型改變;
響應于檢測到所述類型改變,重新生成在其中已檢測到所述類型改變的該.net模塊文件(124、510),由此形成重新生成的.net模塊文件(136、528);
生成包括所述重新生成的.net模塊文件(136、528)的臨時程序集(134、530);
將所述臨時程序集(134、530)表示在所述文件系統的第二位置中;
從所述文件系統的第二位置復制所述重新生成的.net模塊文件(136、528);
用從所述文件系統的第二位置所復制的重新生成的.net模塊文件(136、528)來替換所述文件系統的第一位置中的.net模塊文件(124、510);以及
重新生成包括所述程序集(116、500)的程序集清單(122)的.dll文件(502)。
7.如權利要求6所述的方法,其特征在于,生成程序集以及生成臨時程序集包括:利用.NET框架類庫(FCL)的System.Reflection.Emit命名空間內的中間語言代碼生成器(IL生成器)類來生成所述程序集以及生成所述臨時程序集。
8.如權利要求6所述的方法,其特征在于,重新生成包含所述程序集的程序集清單的.dll文件包括:利用由公共編譯器基礎結構(CCI)框架提供的功能來重新生成所述程序集清單以形成重新生成的程序集清單。
9.如權利要求6所述的方法,其特征在于,重新生成.net模塊文件包括:重新生成引用所述多個.net模塊文件中的至少一個的.net模塊文件,該.net模塊文件依賴于所述多個.net模塊文件中的所述至少一個。
10.如權利要求6所述的方法,其特征在于,還包括:
生成多個調試文件,所述多個調試文件中的每一個與所述多個.net模塊文件中的一個相關聯;以及
重新生成所述多個調試文件中與該.net模塊文件相關聯的調試文件。
11.一種用于托管程序集的增量式生成的系統,包括:
用于將以托管編程語言編寫的源代碼(102)編譯成公共中間語言(CIL)代碼和元數據,由此生成程序集(116、500)的裝置,所述程序集(116、500)包括:
包含程序集清單(122)的動態鏈接庫(.dll)文件(502),所述程序集清單(122)包括所述元數據,以及
包括所述CIL代碼的多個.net模塊文件(124、126、504、510);
用于將所述程序集(116、500)表示在文件系統的第一位置中的裝置;
用于檢測所述多個.net模塊文件(124、126、504、510)中的一.net模塊文件(124、510)內的類型改變的裝置;
用于響應于檢測到所述類型改變,重新生成在其中已檢測到所述類型改變的該.net模塊文件(124、510),由此形成重新生成的.net模塊文件(136、528)的裝置;
用于生成包括所述重新生成的.net模塊文件(136、528)的臨時程序集(134、530)的裝置;
用于將所述臨時程序集(134、530)表示在所述文件系統的第二位置中的裝置;
用于從所述文件系統的第二位置復制所述重新生成的.net模塊文件(136、528)的裝置;
用于用從所述文件系統的第二位置所復制的重新生成的.net模塊文件(136、528)來替換所述文件系統的第一位置中的.net模塊文件(124、510)的裝置;以及
用于重新生成包括所述程序集(116、500)的程序集清單(122)的.dll文件(502)的裝置。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于微軟技術許可有限責任公司,未經微軟技術許可有限責任公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210053833.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:用于咨詢服務網絡的游戲檔案
- 下一篇:氣壓模式淺埋暗挖法盾構





