จะดูโฟลเดอร์และไฟล์ใน GAC ได้อย่างไร?


109

ฉันต้องการที่จะดูโฟลเดอร์และโฟลเดอร์ย่อยในGAC นอกจากนี้ยังต้องการทราบเกี่ยวกับการเพิ่มและลบจากGAC

ในการติดตั้งเราเขียนบรรทัดนี้ในพรอมต์คำสั่งโดยเปิด Visual Studio command prompt: -

gacutil /i [assembly path]

แต่ในการถอนการติดตั้งเราต้องการเพียง: -

gacutil /u [assembly name]

ทำไม?


หากคุณไปที่โฟลเดอร์แอสเซมบลีโฟลเดอร์ใดโฟลเดอร์หนึ่งในไดเร็กทอรี Windows จากนั้นพิมพ์ชื่อ dll ที่คุณต้องการในแถบค้นหา (ของ file explorer) ก็จะเริ่มปรากฏขึ้น
JakeJ

คำตอบ:


136

ติดตั้ง:

gacutil -i "path_to_the_assembly"

ดู:

เปิดในโฟลเดอร์ Windows Explorer

  • .NET 1.0 - สุทธิ 3.5: c:\windows\assembly( %systemroot%\assembly)
  • .NET 4.x: %windir%\Microsoft.NET\assembly

หรือ gacutil –l

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

MSDN:


4
โปรดทราบว่าสำหรับ. NET 4.0 ตำแหน่ง GAC ตอนนี้:% windir% \ Microsoft.NET \ assembly \
Alex Nolasco

57

ฉันเป็นวันที่ช้าและเงินดอลลาร์สั้นสำหรับสิ่งนี้ หากคุณต้องการดูโครงสร้างโฟลเดอร์ของ GAC ใน Windows Explorer คุณสามารถทำได้โดยใช้รีจิสทรี :

  1. เปิด regedit
  2. ไปที่ HKLM \ Software \ Microsoft \ Fusion
  3. เพิ่ม DWORD ชื่อ DisableCacheViewer และตั้งค่าเป็น 1

สำหรับมุมมองชั่วคราวคุณสามารถแทนที่ไดรฟ์สำหรับเส้นทางโฟลเดอร์ซึ่งจะตัดคุณสมบัติไดเร็กทอรีพิเศษออกไป

  1. เปิด Command Prompt ที่ระดับสิทธิ์ของบัญชีของคุณ
  2. พิมพ์ SUBST Z: C: \ Windows \ assembly
    • Z สามารถเป็นอักษรระบุไดรฟ์ฟรี
  3. เปิด My Computer และดูในไดเร็กทอรีทดแทนใหม่
  4. ในการลบไดรฟ์เสมือนออกจาก Command Prompt ให้พิมพ์ SUBST Z: / D

สำหรับเหตุผลที่คุณต้องการทำสิ่งนี้ฉันได้ใช้เคล็ดลับนี้เพื่อเปรียบเทียบ DLL ของ GAC ระหว่างเครื่องต่างๆเพื่อให้แน่ใจว่าเหมือนกันจริงๆ


คุณสามารถแก้ไขรีจิสทรีโดยอัตโนมัติด้วย Powershell:
Textcape

รายการใหม่ 'HKLM: \ Software \ Microsoft \ Fusion' - บังคับ | New-ItemProperty - ชื่อ "DisableCacheViewer" -PropertyType DWord -Value 1 -Force | Out-Null
Textcape

40

เปิดโปรแกรม "Run" (Windows Vista / 7/8: พิมพ์ในแถบค้นหาเมนูเริ่ม) และพิมพ์: C:\windows\assembly\GAC_MSIL

จากนั้นย้ายไปที่โฟลเดอร์หลัก (Windows Vista / 7/8: โดยคลิกที่มันในแถบสำรวจ) เพื่อดูไฟล์ GAC ทั้งหมดในหน้าต่าง explorer ปกติ ตอนนี้คุณสามารถคัดลอกเพิ่มและลบไฟล์ได้เหมือนทุกที่


ขอบคุณ - อนุญาตให้ฉันใช้ Windows Explorer ซึ่งถูกทำเครื่องหมายว่าล้าสมัยตั้งแต่. NET 4
Dave Friedel

8

ดูไฟล์ที่เพียงแค่เรียกดูได้จากคำสั่งพรอมต์ ( cmd) เช่น .:

c:\>cd \Windows\assembly\GAC_32
c:\Windows\assembly\GAC_32> dir

ในการเพิ่มและลบไฟล์จาก GAC ให้ใช้เครื่องมือ gacutil


ฉันต้องการดูเป็นโฟลเดอร์ปกติ
Rohit Vipin Mathews

@CodingMastero มันไม่ใช่โฟลเดอร์ธรรมดา!
Klaus Byskov Pedersen

เราไม่สามารถใช้แฮ็คเพื่อดูเป็นเรื่องปกติได้หรือไม่?
Rohit Vipin Mathews

@CodingMastero ไม่คุณทำไม่ได้ คุณสามารถดูผ่านพรอมต์คำสั่งตามที่ระบุไว้ข้างต้น
Klaus Byskov Pedersen

1
ใช่. ขออภัยฉันอาจไม่ชัดเจนที่นี่ คุณไม่สามารถใช้C:\Windows\assemblyเพื่อเรียกดู. NET 4.0 GAC แน่นอนว่าคุณยังสามารถใช้กับ. NET 2/3 ได้ (หากมีการติดตั้งด้วย) ไม่มีส่วนขยายเชลล์ที่เทียบเคียงได้ (AFAIK) ที่ทำงานในลักษณะเดียวกันกับC:\Windows\Microsoft.NET\assemblyไดเร็กทอรีใหม่
Christian.K

5

คุณติดตั้งเป็นแอสเซมบลีโดยใช้:

  • โปรแกรมติดตั้งที่คุณเขียนขึ้นสำหรับแอปพลิเคชันของคุณ
  • การใช้gacutil.exeเครื่องมือพร้อม-iตัวเลือกจากบรรทัดคำสั่ง
  • การทิ้งชุดประกอบใน%windir%\Assembly(สูงสุด. NET 3.5, CLR 2.0 เท่านั้น)

คุณดูเนื้อหาของ GAC โดยใช้:

  • gacutil.exeเครื่องมือที่มี-lตัวเลือก
  • สำหรับ. NET 2.0, 3.0 และ 3.5 (CLR 2.0) เรียกดู%windir%\assemblyโดยใช้ Windows Explorer

โปรดทราบว่าตำแหน่ง GAC (ทางกายภาพ) มีการเปลี่ยนแปลงสำหรับ. NET 4.0 ไม่ได้อยู่ในอีกต่อไป%windir%\Assemblyแต่ตอนนี้เข้า%windir%\Microsoft.NET\assemblyแล้ว อย่างไรก็ตามคุณไม่ควรเขียนโค้ดใด ๆ ที่ขึ้นอยู่กับตำแหน่งทางกายภาพเนื่องจากเนื่องจากเครื่องมือที่มีอยู่ซึ่งแทบจะไม่จำเป็นเลย


นอกจากgacutil.exeเครื่องมืออื่น ๆ ที่ฉันรู้คือ fusion.dll
Scott Solmer
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.