วิธีการติดตั้งแอสเซมบลีลงในแคแอสเซมบลีสากลใน Visual c#

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 815808 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความนี้อธิบายวิธีการสร้างชื่อที่รัดกุมสำหรับแอสเซมบลี และการติดตั้งแฟ้ม.dll ในแบบสากลแอสเซมบลีแคช (GAC) ด้วย GAC คุณสามารถใช้แอสเซมบลีร่วมระหว่างโปรแกรมประยุกต์จำนวนมาก GAC ไม่ได้รับการติดตั้งโดยอัตโนมัติ ด้วยการใช้งานจริง.NET โดยปกติจะมีการจัดเก็บคอมโพเนนต์ใน C:\WINNT\Assembly

การติดตั้งแอสเซมบลีใน GAC คุณต้องตั้งชื่อที่ซับซ้อนให้กับแอสเซมบลี ชื่อไม่มีแฮคีย์การเข้ารหัสลับ หรือลายเซ็น ชื่อที่รัดกุมนี้ช่วยให้มั่นใจการกำหนดรุ่นของคอมโพเนนต์ที่ถูกต้อง ซึ่งช่วยป้องกันไม่ให้คอมโพเนนต์ที่มีชื่อเดียวกัน จาก conflicting กัน หรือ จากการไม่ถูกต้องได้ถูกใช้โดยโปรแกรมประยุกต์ที่ consuming


ความต้องการ

รายการต่อไปนี้แสดงฮาร์ดแวร์ที่แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย และ service pack ที่จำเป็นต้องใช้:
  • สิทธิ์ของผู้ดูแลเข้ากับคอมพิวเตอร์ที่แอสเซมบลีที่ใช้ร่วมกันจะถูกติดตั้งอยู่

บทความนี้อนุมานว่า คุณไม่คุ้นเคยกับหัวข้อต่อไปนี้:
  • familiarity ทั่วไป ด้วยแอสเซมบลีใน.NET
  • familiarity ทั่วไปเกี่ยวกับการใช้เครื่องมือที่พร้อมท์รับคำสั่ง

แคชของแอสเซมบลีส่วนกลาง

เมื่อต้องการสร้างโครงการไลบรารีคลาสขนาดเล็ก โดยใช้ Visual Studio การสร้างชื่อที่เข้มงวด และติดตั้งแฟ้ม.dll ของโครงการใน GAC ดำเนินการดังต่อไปนี้:
  1. ใน Visual Studio สร้างการใหม่ Visual c# คลาโครงการไลบรารี และชื่อโครงการGACDemo.
  2. คุณต้องใช้ชื่อที่รัดกุม เมื่อต้องการสร้างคู่คีย์การเข้ารหัสลับนี้ ใช้เครื่องมือการ SN เครื่องมือนี้จะอยู่ในไดเรกทอรีย่อย \bin ซึ่งมีการติดตั้งใน.NET Framework โซลูชันสำหรับนักพัฒนา Kit (SDK) เครื่องมือการ SN ง่ายใช้อยู่ คำสั่งบรรทัดคำสั่งที่ใช้ต่อไปนี้
    sn -k "[DriveLetter]:\[DirectoryToPlaceKey]\[KeyName].snk"
    หมายเหตุ:ใน Visual Studio 2005 และ Visual Studio รุ่นที่ใหม่กว่า คุณสามารถใช้คุณสมบัติของโครงการ IDE คู่ของคีย์สร้าง และลงทะเบียนแอสเซมบลีของคุณ แล้ว คุณสามารถข้ามขั้นตอนที่ 3 และขั้นตอนที่ 4 และยัง ให้ข้ามการทำการเปลี่ยนแปลงรหัสใด ๆ ไปยังแฟ้ม AssemblyInfo.cs

    เมื่อต้องการใช้คุณสมบัติของโครงการ IDE คู่ของคีย์สร้าง และลงทะเบียนแอสเซมบลีของคุณ ดำเนินการดังต่อไปนี้:
    1. คลิกขวาใน Explorer โซลูชันGACDemoแล้ว คลิกคุณสมบัติ.
    2. คลิกการการเซ็นชื่อแท็บ และคลิกเพื่อเลือกนั้นเซ็นชื่อแอสเซมบลีกล่องกาเครื่องหมาย
    3. ในการเลือกคีย์การชื่อที่รัดกุมรายการ คลิก<new...></new...>.
    4. ประเภท:GACkey.snkชื่อแฟ้มที่สำคัญ คลิกเพื่อยกเลิกการป้องกันแฟ้มของฉันคีย์ ด้วยรหัสผ่านกล่องกาเครื่องหมาย และจากนั้น คลิกตกลง.
    5. กด CTRL + SHIFT + B เพื่อคอมไพล์โครงการ
    หลังจากที่คุณทำตามขั้นตอนเหล่านี้ คุณยังคงต้องทำตามขั้นตอนที่ 5 การติดตั้งแอสเซมบลีของคุณใน GAC
  3. สร้างไดเรกทอรีที่ระบุGACKeyใน C:\ เพื่อให้คุณสามารถได้อย่างง่ายดายคีย์ในการค้นหา และเข้าถึงคีย์ที่พร้อมท์รับคำสั่ง

    หมายเหตุ:สำหรับผู้ใช้ที่มากที่สุด เครื่องมือ.NET จะอยู่ใน C:\Program Files\Microsoft.NET\FrameworkSDK\Bin ก่อนที่คุณพิมพ์คำสั่งต่อไปนี้ของ SN คุณอาจต้องการคัดลอกเส้นทางนี้คล้ายคลึงกันบนคอมพิวเตอร์ของคุณไปยังไดเรกทอรีของช่องเก็บ.NET ประเภท:ซีดีหน้าจอพร้อมรับคำสั่ง คลิกขวาที่การวางเส้นทาง และกด enter เพื่อเปลี่ยนไดเรกทอรีซึ่งเป็นที่ตั้งของเครื่องมือการ SN อย่างรวดเร็ว

    พิมพ์ต่อไปนี้:
    sn -k "C:\GACKey\GACkey.snk"
  4. มีสร้างคีย์ แต่ไม่ได้เชื่อมโยงกับแอสเซมบลีของโครงการ เมื่อต้องการสร้างความสัมพันธ์นี้ คลิกสองครั้งที่แฟ้ม AssemblyInfo.cs ใน Visual Studio .NET โซลูชัน Explorer แฟ้มนี้มีรายการของแอตทริบิวต์ของแอสเซมบลีที่รวมอยู่ โดยค่าเริ่มต้นเมื่อสร้างโครงการใน Visual Studio .NET ปรับเปลี่ยนAssemblyKeyFileแอสเซมบลีคุณลักษณะในรหัสต่อไปนี้:
    [แอสเซมบลี: AssemblyKeyFile("C:\\GACKey\\GACKey.snk")]
    การคอมไพล์โครงการ โดยการคลิก CTRL + SHIFT + B คุณไม่จำเป็นต้องมีรหัสเพิ่มเติมใด ๆ ที่อยู่ในการติดตั้งแฟ้ม.dll ใน GAC
  5. คุณสามารถติดตั้งแฟ้ม.dll โดยการใช้เครื่องมือ Gacutil หรือ โดยการลากแฟ้ม.dll ไปยังโฟลเดอร์ที่เหมาะสม ถ้าคุณใช้ Gacutil เครื่องมือ คุณสามารถใช้คำสั่งที่มีลักษณะดังต่อไปนี้:
    gacutil - ฉัน "[DriveLetter]:\[PathToBinDirectoryInVSProject]\gac.dll"
    เมื่อต้องการลากแฟ้ม เปิดอินสแตนซ์ที่สองของ Windows Explorer ในอินสแตนซ์ที่หนึ่ง ค้นหาตำแหน่งที่ตั้งของผลลัพธ์แฟ้ม.dll สำหรับโครงการคอนโซลของคุณ ในที่อื่น ๆ สแตนซ์ ค้นหา c:\[SystemRoot]\Assembly จากนั้น ลากแฟ้ม.dll ของคุณไปแอสเซมบลีโฟลเดอร์

การแสดงรายการรหัสเสร็จสมบูรณ์ (AssemblyInfo.cs)

using System.Reflection;
using System.Runtime.CompilerServices;

//
// General Information about an assembly is controlled through the following 
// set of attributes. Change these attribute values to modify the information
// that is associated with an assembly.
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

//
// Version information for an assembly is made up of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
// You can specify all the values, or you can default the revision and build numbers 
// by using the '*' as shown below:

[assembly: AssemblyVersion("1.0.*")]

//
// To sign your assembly you must specify a key to use. See the 
// Microsoft .NET Framework documentation for more information about assembly signing.
//
// Use the following attributes to control that key is used for signing. 
//
// Notes: 
//   (*) If no key is specified, the assembly is not signed.
//   (*) KeyName refers to a key that has been installed in the Crypto Service
//       Provider (CSP) on your computer. KeyFile refers to a file that contains
//       a key.
//   (*) If the KeyFile and the KeyName values are both specified, the 
//       following processing occurs:
//       (1) If the KeyName can be found in the CSP, that key is used.
//       (2) If the KeyName does not exist and the KeyFile does exist, the key 
//           in the KeyFile is installed to the CSP and used.
//   (*) To create a KeyFile, you can use the sn.exe (Strong Name) utility.
//       When specifying the KeyFile, the location of the KeyFile must be
//       relative to the project output directory which is
//       %Project Directory%\obj\<configuration>. For example, if your KeyFile is
//       located in the project directory, you would specify the AssemblyKeyFile 
//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
//       documentation for more information about this.
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("C:\\GACKey\\GACKey.snk")]
[assembly: AssemblyKeyName("")]

การตรวจสอบ

  1. เปิด Windows Explorer
  2. ค้นหา C:\SystemRoot\ แอสเซมบลี
  3. คุณเห็น GACDemo ในรายชื่อแฟ้ม.dll ที่ติดตั้ง

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติม ให้ดูเว็บไซต์ต่อไปนี้ของ Microsoft:
การติดตั้งแอสเซมบลีลงในแคชของแอสเซมบลีสากล
.aspx http://msdn2.microsoft.com/en-us/library/dkkx7f79 (vs.71)
แคชของแอสเซมบลีส่วนกลาง
.aspx http://msdn2.microsoft.com/en-us/library/yf1d93sz (vs.71)
เครื่องมือการแคชของแอสเซมบลีส่วนกลาง
.aspx http://msdn2.microsoft.com/en-us/library/ex0ss12c (vs.71)

คุณสมบัติ

หมายเลขบทความ (Article ID): 815808 - รีวิวครั้งสุดท้าย: 14 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Keywords: 
kbcodesign kbcommandline kbnamespace kbhowtomaster kbmt KB815808 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:815808

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com