Regasm.exe (Derleme Kayıt Aracı)

Derleme Kayıt aracı, derleme içindeki meta verileri okur ve kayıt defterine gerekli girişleri ekler, bu da COM istemcilerinin şeffaf olarak .NET Framework sınıfları oluşturmalarına izin verir. Sınıf kaydettirildikten sonra, COM istemcileri artık sınıfı bir COM sınıfıymış gibi kullanabilir. Sınıf yalnızca bir defa, derleme yüklenirken kaydettirilir. Derleme içindeki sınıf örnekleri gerçekten kaydettirilene kadar COM'dan oluşturulamaz.

Aracı çalıştırmak için Visual Studio Geliştirici Komut İstemi'ni veya Visual Studio Developer PowerShell'i kullanın.

Komut satırına şunu yazın:

Sözdizimi

regasm assemblyFile [options]

Parametreler

Parametre Açıklama
Assemblyfile COM ile kaydettirilecek derleme.
Seçenek Açıklama
/Codebase Kayıt defterinde bir Kod Temeli girişi oluşturur. Codebase girdisi, genel derleme önbelleğinde yüklü olmayan bir derlemenin dosya yolunu belirtir. Daha sonra genel derleme önbelleğine kaydettiğiniz derlemeyi yükleyecekseniz bu seçeneği belirtmeyin. /codebase seçeneğiyle belirttiğiniz assemblyFile bağımsız değişkeninin tanımlayıcı adlı bir derleme olması kesinlikle önerilir.
/Kayıtlı Bu aracın yalnızca zaten kayıtlı durumdaki tür kitaplıklarına başvuracağını belirtir.
/asmpath:directory Derleme başvuruları içeren bir dizini belirtir. /regfile seçeneğiyle kullanılmalıdır.
/nologo Microsoft başlangıç başlığı görüntüsünü bastırır.
/regfile [:regFile] Gerekli kayıt defteri girdilerini içeren derleme için belirtilen .reg dosyasını oluşturur. Bu seçeneği belirtmek kayıt defterini değiştirmez. Bu seçeneği /u veya /tlb seçenekleriyle kullanamazsınız.
/silent veya /s Başarı iletilerinin görüntülenmesini bastırır.
/tlb [:typeLibFile] Belirtilen derlemeden, derleme içinde tanımlanmış erişilebilir türlerin tanımlarını içeren bir tür kitaplığı oluşturur.
/unregister veya /u assemblyFile içinde bulunan creatable sınıflarının kaydını kaldırıyor. Bu seçeneği kullanmamak, Regasm.exe'nin derlemedeki oluşturulabilir sınıfları kaydettirmesine neden olur.
/Ayrıntılı Ayrıntılı modu belirtir; , /tlb seçeneğiyle belirtildiğinde tür kitaplığının oluşturulması gereken başvurulan derlemelerin listesini görüntüler.
/? veya /help Araç için komut sözdizimini ve seçenekleri görüntüler.

Not

Regasm.exe komut satırı seçenekleri büyük/küçük harfe duyarsızdır. Seçeneğin, yalnızca onu benzersiz şekilde tanımlamaya yetecek kadarını sağlamanız yeterlidir. Örneğin, /n/ nologo ile eşdeğerdir ve /t:outfile.tlb/tlb:outfile.tlb ile eşdeğerdir.

Açıklamalar

Değişiklikleri doğrudan kayıt defterinde yapmak yerine kayıt defteri girdilerini içeren bir .reg dosyası oluşturmak için /regfile seçeneğini kullanabilirsiniz. Kayıt Defteri Düzenleyicisi (Regedit.exe) aracı ile .reg dosyasını içe aktararak, bir bilgisayarda kayıt defterini güncelleştirebilirsiniz. .reg dosyası, kullanıcı tanımlı yazmaç işlevleri tarafından yapılabilecek herhangi bir kayıt defteri güncelleştirmesi içermez. /regfile seçeneği yalnızca yönetilen sınıflar için kayıt defteri girdilerini yayar. Bu seçenek, s veya InterfaceIDs için TypeLibIDgirdiler yaymaz.

/tlb seçeneğini belirttiğinizde, Regasm.exe derlemede bulunan türleri açıklayan bir tür kitaplığı oluşturur ve kaydeder. RegAsm.exe oluşturulan tür kitaplıklarını geçerli çalışma dizinine veya çıktı dosyası için belirtilen dizine yerleştirir. Diğer derlemelere başvuran bir derleme için tür kitaplığı oluşturmak, bazı tür kitaplıklarının tek seferde oluşturulmasına neden olabilir. Visual Studio gibi geliştirme araçlarına tür bilgileri sağlamak için tür kitaplığını kullanabilirsiniz. Kaydettiğiniz derleme Tür Kitaplığı İçeri Aktarıcısı (Tlbimp.exe) tarafından oluşturulduysa /tlb seçeneğini kullanmayın. Bir tür kitaplığından içeri aktarılmış bir derlemeden bir tür kitaplığını dışarı aktaramazsınız. /tlb seçeneğinin kullanılması, Tlbexp.exe ürettiği tür kitaplığını kaydetmemesi dışında, Tür Kitaplığı Dışarı Aktarıcısı (Tlbexp.exe) ve Regasm.exe ile aynı etkiye sahiptir. Bir tür kitaplığını kaydetmek için /tlb seçeneğini kullanırsanız, tür kitaplığının kaydını kaldırmak için / tlb seçeneğini /unregister seçeneğiyle birlikte kullanabilirsiniz. İki seçeneği birlikte kullandığınızda tür kitaplığının ve arabirim girdilerinin kaydını kaldırırsınız, bu da kayıt defterini önemli ölçüde temizleyebilir.

Bir derlemeyi COM tarafından kullanılması için kaydettirdiğinize, Regasm.exe girdileri yerel bilgisayardaki kayıt defterine ekler. Daha ayrıntılı şekilde söylemek gerekirse, aynı derlemenin birden fazla sürümünün bir bilgisayarda yan yana çalışmasına olanak veren sürüme bağlı kayıt defteri anahtarları oluşturur. Bir derleme ilk kez kaydedildiğinde, derleme için bir üst düzey anahtar oluşturulur ve belirli sürüm için benzersiz bir alt anahtar oluşturulur. Derlemenin yeni bir sürümünü her kaydettirdiğinizde, Regasm.exe yeni sürüm için bir alt anahtar oluşturur.

Örneğin, COM tarafından kullanılmak üzere yönetilen bileşen myComp.dll'yi (sürüm 1.0.0.0) kaydettirdiğiniz bir senaryo düşünün. Daha sonra myComp.dll sürüm 2.0.0.0'ı kaydettiriyorsunuz. Bilgisayardaki tüm COM istemci uygulamalarının myComp.dll sürüm 2.0.0.0 kullandığını öğreniyor ve myComponent.dll sürüm 1.0.0.0'ın kaydını kaldırmaya karar veriyorsunuz. Bu kayıt defteri düzeni myComp.dll sürüm 1.0.0.0'ın kaydını kaldırmanıza olanak verir, çünkü yalnızca sürüm 1.0.0.0 alt anahtarı kaldırılmıştır.

Regasm.exe kullanarak bir derleme kaydettikten sonra, herhangi bir COM istemcisinden etkinleştirilebilmesi için bunu genel derleme önbelleğine yükleyebilirsiniz. Derleme yalnızca tek bir uygulamayla etkinleştirilecekse, onu söz konusu uygulamanın dizinine yerleştirebilirsiniz. /codebase seçeneğinin kullanılması, genel bütünleştirilmiş kod önbelleğini kullanmaya alternatiftir; ancak, kayıt sırasında derlemenin konumu genel olarak kaydedilir ve derleme taşınırsa etkinleştirme başarısız olur. Derleme yoklama aracılığıyla bulunamazsa , /codebase seçeneği derlemeyi içinde belgelenen Assembly.LoadFromek konuları içeren bir yük kaynağı bağlamında yükler.

Örnekler

Aşağıdaki komut içinde myTest.dllbulunan tüm genel sınıfları kaydeder.

regasm myTest.dll

Aşağıdaki komut, gerekli tüm kayıt defteri girdilerini içeren dosyasını myTest.regoluşturur. Bu komut, kayıt defterini güncelleştirmez.

regasm myTest.dll /regfile:myTest.reg

Aşağıdaki komut içinde myTest.dllbulunan tüm genel sınıfları kaydeder ve içinde tanımlanan myTest.dlltüm genel türlerin tanımlarını içeren tür kitaplığını myTest.tlboluşturur ve kaydeder.

regasm myTest.dll /tlb:myTest.tlb

Ayrıca bkz.