Genel birleştirme önbelleğine Visual C# içinde bir derleme yükleme

Makale çevirileri Makale çevirileri
Makale numarası: 815808 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Derleme için kesin adı oluşturmak ve bir .dll dosyasını Genel Derleme Önbelleği (GAC) yüklemek, bu makalede anlatılmaktadır. GAC, pek çok uygulama derlemeler paylaşabilirsiniz. GAC, .NET çalışma zamanı ile otomatik olarak yüklenir. Bileşenler, genellikle C:\WINNT\Assembly içinde depolanır.

Bir derlemesi GAC'DE yüklemek için <a0></a0>, derleme kesin adı vermelisiniz. Şifreleme karma anahtarı veya imza addır. Bu güçlü bir adı doğru bileşen sürüm sağlar. Bu, bileşenlerin birbiriyle çakışan veya yanlış kaybı bir uygulama tarafından kullanılan aynı ada sahip önlemeye yardımcı olur.


Gereksinimler

Aşağıdaki listede, gereksinim duyulan donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
  • Paylaşılan derleme yüklenmekte olduğu bilgisayarda yönetici hakları

Bu makalede, aşağıdaki konularda bilgi sahibi olduğunuz varsayılmaktadır:
  • Derlemelerde .NET ile genel benzerlik.
  • Komut isteminde araçların kullanımı ile genel benzerlik.

Genel birleştirme önbelleği

Kesin adı oluşturmak ve projenin .dll dosyasını GAC'YE yüklemek için Visual Studio kullanarak küçük bir Class Library projesi oluşturmak için aşağıdaki adımları izleyin:
  1. Visual Studio, yeni bir Visual C# Class Library projesi oluşturun ve projeyi GACDemo.
  2. Kesin adı kullanmanız gerekir. Bu şifreleme anahtar çiftini üretmek için <a0></a0>, SN Aracı'nı kullanın. Bu araç, .NET Framework Solution Developer Kit (SDK) yüklü olduğu \bin alt dizininde bulunur. Kullanımı kolay SN araçtır. Komut satırı deyimi aşağıdaki alır.
    sn -k "[DriveLetter]:\[DirectoryToPlaceKey]\[KeyName].snk"
    Not Visual Studio 2005 ve Visual Studio sonraki sürümlerinde, bir anahtar çiftini üretmek için birleştirme oturum IDE proje özelliklerini kullanabilirsiniz. Sonra Adım 3 ve 4. adıma atlayın ve ayrıca AssemblyInfo.cs dosyaya kod değişiklik yapmadan atlayın.

    Bir anahtar çiftini üretmek için birleştirme oturum IDE proje özelliklerini kullanmak için aşağıdaki adımları izleyin:
    1. Solution Explorer'da (Çözüm Gezgini), GACDemo ' ı sağ tıklatın ve sonra da Properties ' i tıklatın.
    2. Imzalama sekmesini tıklatın ve ardından <a0><a1>oturum</a1> derleme</a0> onay kutusunu seçin.
    3. Kesin ad anahtar Seç</a0> listesinde <New...> tıklatın....
    4. Anahtar dosya adı, türü GACkey.snkanahtar dosyamı parolayla koru</a0> onay kutusunu temizlemek için tıklatın ve sonra Tamam ' ı tıklatın.
    5. Projeyi derlemek için CTRL + ÜST KRKT + K tuşlarına basın.
    Bu adımları izledikten sonra adım 5 sizin derlemesi GAC'DE yüklemek için yine de izlemeniz gerekir.
  3. Böylece, kolayca anahtarı bulun ve komut istemini anahtara erişim GACKey C:\ içinde adlı bir dizin oluşturun.

    Not Çoğu kullanıcı için C:\Program .NET araçları bulunur Files\Microsoft.NET\FrameworkSDK\Bin. SN aşağıdaki komutu yazın, önce bilgisayarınızdaki benzer bu yol .NET bin dizinine kopyalamak isteyebilirsiniz. Komut isteminde CD yolu yapıştırmaya sağ tıklatın ve hızla SN aracı bulunduğu dizine geçmek için ENTER tuşuna basın.

    Aşağıdaki komutu yazın:
    sn -k "C:\GACKey\GACkey.snk"
  4. Bir anahtar oluşturulur, ancak henüz proje derlemesi ile ilişkili değil. Bu ilişki oluşturmak için <a0></a0>, Visual Studio .NET Solution Explorer'da (Çözüm Gezgini) AssemblyInfo.cs dosyasını çift tıklatın. Bu dosya, Visual Studio. NET'te bir proje oluşturulduğunda, varsayılan olarak içerdiği derleme öznitelikler listesine sahiptir. AssemblyKeyFile değiştirmek derleme özniteliği kodu aşağıdaki gibi:
    [derleme: AssemblyKeyFile("C:\\GACKey\\GACKey.snk")]
    CTRL + ÜST KRKT + B'ı tıklatarak Projeyi derleyin. Bir .dll dosyasını GAC'YE yüklemek için herhangi bir ek kod olması gerekmez.
  5. .Dll dosyası Gacutil aracını kullanarak veya .dll dosyasının uygun klasöre sürükleyerek yükleyebilirsiniz. Gacutil kullanıyorsanız, aracı aşağıdakine benzer bir komut kullanabilirsiniz:
    Gacutil - BANA "[DriveLetter]:\[PathToBinDirectoryInVSProject]\gac.dll"
    Dosya sürüklemek için Windows Gezgini'nin iki örneği'ni açın. Bir örnekte, konsol projeniz için .dll dosyası çıkış konumunu bulun. Diğer örneğinde c:\[SystemRoot]\Assembly bulun. Sonra .dll dosyası derleme klasöre sürükleyin.

Tam kod listesi (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("")]

Doğrulama

  1. Windows Gezgini'ni başlatın.
  2. SystemRoot C:\ bulun \ derleme.
  3. Yüklü bir .dll dosyalarını listesinde GACDemo konusuna bakın.

Referanslar

Daha fazla bilgi için aşağıdaki Microsoft Web sitelerine bakın:
Derleme Genel Derleme Önbelleği ' yükleniyor.
http://msdn2.microsoft.com/en-us/library/dkkx7f79(vs.71).aspx
Genel birleştirme önbelleği
http://msdn2.microsoft.com/en-us/library/yf1d93sz(vs.71).aspx
Genel birleştirme önbelleği aracı
http://msdn2.microsoft.com/en-us/library/ex0ss12c(vs.71).aspx

Özellikler

Makale numarası: 815808 - Last Review: 13 Mayıs 2007 Pazar - Gözden geçirme: 3.9
Bu makaledeki bilginin uygulandığı durum:
  • 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
Anahtar Kelimeler: 
kbmt kbcodesign kbcommandline kbnamespace kbhowtomaster KB815808 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:815808

Geri Bildirim Ver

 

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