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

ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ

ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้: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)
กลับสู่ด้านบน

คำเตือน: บทความนี้ได้รับการแปลโดยอัตโนมัติ

คุณสมบัติ

รหัสบทความ: 815808 - การตรวจสอบครั้งสุดท้าย: 01/14/2011 12:02:00 - ฉบับแก้ไข: 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

  • kbcodesign kbcommandline kbnamespace kbhowtomaster kbmt KB815808 KbMtth
คำติชม