ͼ 3. Ð嵀 \AsmInfo ×ÓĿ¼
Òª¸æËß C# ±àÒëÆ÷±àÒëλÓÚ¸ùĿ¼ÒÔ¼° AsmInfo ×ÓĿ¼ÖеÄËùÓÐ C# Îļþ£¬ÇëʹÓà /recurse Ñ¡Ï
csc /t:library /out:MyCodeLibrary.dll /recurse:AsmInfo /doc:myDoc.xml *.cs
ÕâÀ/recurse ÒѾÓÃÌض¨×ÓĿ¼µÄÃû³ÆÏÞ¶¨¡£ÒªÖ¸¶¨¶à¸ö×ÓĿ¼£¬ÎÒÃÇ¿ÉÒÔÔÙ´ÎʹÓÃͨÅä·ûÓï·¨¡£Èç¹ûÎÒÃÇÒª½« simpleType.cs ÎļþÒƵ½Ò»¸öеÄÃûΪ Core µÄ×ÓĿ¼ÖУ¬ÔòÎÒÃÇ¿ÉÒÔÓÃÒÔÏÂÃüÁ±àÒëËùÓÐ×ÓĿ¼ÖеÄËùÓÐ C# Îļþ£º
csc /t:library /out:MyCodeLibrary.dll /recurse:*.cs
ÔÚÈκÎÒ»ÖÖÇé¿öÏ£¬Êä³ö¶¼ÊÇÏàͬµÄ¡£
ʹÓà /doc Éú³É XML ÎĵµÎļþ
SimpleType ÀàÒѾÅ䱸Á˸÷ÖÖ XML ÔªËØ¡£¾ÍÏñÄúºÜ¿ÉÄÜÖªµÀµÄÄÇÑù£¬C# ±àÒëÆ÷½«Ê¹ÓÃÕâЩ´øÓÐÈýÌõб¸ÜµÄ´úÂë×¢ÊÍÉú³É XML ÎĵµÎļþ¡£Òª¸æËß csc.exe ´´½¨ÕâÑùµÄÎļþ£¬±ØÐëÌṩ /doc Ñ¡Ï²¢ÇÒÓÃÒªÉú³ÉµÄÎļþµÄÃû³ÆÐÞÊÎËü£º
csc /t:library /out:MyCodeLibrary.dll /recurse:*.cs /doc:myDoc.xml
ÔÚÓ¦ÓóÌÐòĿ¼ÖУ¬ÄúÏÖÔÚÓ¦µ±¿´µ½Ò»¸öÃûΪ myDoc.xml µÄÐÂÎļþ¡£Èç¹ûÄú´ò¿ª¸ÃÎļþ£¬Ôò»á·¢ÏÖÄúµÄÀàÐÍÒÔ XML µÄÐÎʽ½øÐÐÁË˵Ã÷£¬Èçͼ 5 Ëùʾ¡£
ͼ 5. XML ÐÎʽµÄÀàÐÍÎĵµ
×¢ Èç¹ûÄúÏ£ÍûÁ˽â C# XML ´úÂë×¢Ê͵ÄÏêϸÐÅÏ¢£¬ÔòÇë²ÎÔÄÎÄÕ XML Comments Let You Build Documentation Directly From Your Visual Studio .NET Source Files¡£
ʹÓà /keyfile ½¨Á¢Ç¿Ãû³Æ
µ±Ç°Ê¾ÀýµÄ×îºóÒ»ÏîÈÎÎñÊÇΪÎÒÃǵijÌÐò¼¯·ÖÅäÒ»¸öÇ¿Ãû³Æ¡£ÔÚ .NET 1.1 Ï£¬´´½¨Ç¿ÃüÃû³ÌÐò¼¯ÐèҪʹÓà [AssemblyKeyFile] ÊôÐÔ¡£¾¡¹ÜÕâÑù×ö¾ÍºÜºÃÁË£¬µ« C# 2.0 ±àÒëÆ÷ÏÖÔÚÌṩÁË /keyfile ±êÖ¾£¬ÒÔÖ¸¶¨Ç¿Ãû³ÆÃÜÔ¿Îļþ (*.snk) µÄλÖá£
ÔÚÇý¶¯Æ÷ C ÉÏ´´½¨Ò»¸öÃûΪ MyKeyPair µÄÐÂÎļþ¼Ð£¬È»ºóʹÓÃÃüÁîÌáʾ¸ü¸ÄÖÁ¸ÃĿ¼¡£½ÓÏÂÀ´£¬Ê¹Óà sn.exe ʵÓù¤¾ßµÄ ‡°k Ñ¡Ïî´´½¨Ò»¸öÃûΪ myKeyPair.snk µÄÐÂÃÜÔ¿¶Ô¡£
sn -k myKeyPair.snk
ҪʹÓà csc.exe ¶Ô MyCodeLibrary.dll ½øÐÐÇ¿ÃüÃû£¬Çë·¢³öÒÔÏÂÃüÁ£º
csc /t:library /out:MyCodeLibrary.dll /recurse:*.cs /doc:myDoc.xml /keyfile:C:\MyKeyPair\myKeypair.snk
ÒªÑéÖ¤¸Ã³ÌÐò¼¯µÄÈ·¾ßÓÐÇ¿Ãû³Æ£¬ÇëʹÓð²È«ÊµÓù¤¾ß (secutil.exe) ºÍ ‡°s Ñ¡ÏîÏÔʾǿÃû³ÆÐÅÏ¢£º
secutil /sMyCodeLibrary.dll
ÄúÓ¦µ±·¢ÏÖ£¬³ÌÐò¼¯Çåµ¥ÖмǼµÄ¹«Ô¿Öµ±»ÏÔʾΪÈçͼ 6 ËùʾµÄÊä³ö¡£
ͼ 6. ¹«Ô¿ÖµµÄÊä³ö
C# 2.0 ±àÒëÆ÷ȷʵ»¹ÓÐÆäËûһЩÒÔÇ¿Ãû³ÆΪÖÐÐĵıêÖ¾£¨/delaysign ºÍ /keycontainer£©£¬Äú¿ÉÄÜÏ£ÍûÔÚ¿ÕÏÐʱ¼ÓÒÔÑо¿¡£ÌرðµØ£¬Èç¹ûÄúÏ£ÍûÆôÓÃÑÓ³ÙÇ©Ãû£¬ÔòÇëʹÓà /delaysign Ñ¡Ïî¡£
·µ»ØÒ³Ê×¾¡¹Üͨ¹ýÃüÁîÐй¤×÷ʱ¿ÉÒÔÌåÑéµ½ÆäÓëÉú¾ãÀ´µÄÓÅÊÆ£¬µ«Ã»ÓÐÈËÄܹ»·ñÈϼüÈëÊýÊ®¸ö±àÒëÆ÷Ñ¡Ïî¿ÉÄܵ¼ÖÂÊÖÖ¸³é½îºÍ¼Èë´íÎó¡£ÎªÁËÓÐÖúÓÚ¼õÇáÕâÁ½¸öÎÊÌ⣬C# ±àÒëÆ÷Ö§³ÖʹÓÃÏìÓ¦Îļþ¡£
×¢ ËùÓÐÃüÁîÌáʾ¶¼ÔÊÐíÄúʹÓà Up ºÍ Down ¼ýÍ·¼ü±éÀúÒÔÇ°µÄÃüÁî¡£
ÏìÓ¦Îļþ£¨ËüÃÇ°´ÕÕÔ¼¶¨²ÉÓà *.rsp ÎļþÀ©Õ¹Ãû£©°üº¬ÄúÏ£Íû¹©¸øµ½ csc.exe ÖеÄËùÓÐÑ¡Ïî¡£ÔÚ´´½¨Á˸ÃÎļþÒÔºó£¬Äú¾Í¿ÉÒÔ½«ËüµÄÃû³ÆÖ¸¶¨Îª C# ±àÒëÆ÷µÄΨһѡÏΪÁ˱ãÓÚ˵Ã÷£¬ÏÂÃæÌṩÁËÒ»¸ö½«ÓÃÓÚÉú³É MyCodeLibrary.dll µÄÏìÓ¦Îļþ£¨Çë×¢Ò⣬Äú¿ÉÒÔʹÓà # ·ûºÅÖ¸¶¨×¢ÊÍ£©¡£
# MyCodeLibraryArgs.rsp## These are the options used# to compile MyCodeLibrary.dll# Output target and name./t:library /out:MyCodeLibrary.dll # Location of C# files. /recurse:*.cs # Give me an XML doc./doc:myDoc.xml # Give me a strong name as well. /keyfile:C:\MyKeyPair\myKeypair.snk
¸ø¶¨¸ÃÎļþÒÔºó£¬ÄúÏÖÔھͿÉÒÔʹÓà @ Ñ¡ÏîÖ¸¶¨ MyCodeLibraryArgs.rsp ÁË£º
csc @MyCodeLibraryArgs.rsp