Aşağıdaki basit bir reflection işlemi ile kendi assembly'imizi GAC'a yükleyebiliriz.
1: namespace BTAkademi.TestCodes
2: {
3: class Program
4: {
5: static void Main(string[] args)
6: {
7: //GAC'dan System.Web dll'i yükleniyor
8: Assembly asm = Assembly.Load(@"System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
9:
10: // Type bilgisi alınıyor
11: Type t = asm.GetType("System.Web.Configuration.GacUtil");
12: // Metodu invoke edebilmek için GacUtil türünden nesne oluşturuluyor
13: object o = Activator.CreateInstance(t);
14:
15: //Metod bilgisi alınıyor
16: MethodInfo mi = o.GetType().GetMethod("GacInstall");
17:
18: //metod çağrılıyor
19: mi.Invoke(o, new object[] { "C:\\gacTest.dll" });
20:
21: }
22: }
23: }
13/7/2008 tarihli düzenleme :
try{ System.EnterpriseServices.Internal.Publish gac = new System.EnterpriseServices.Internal.Publish(); gac.GacInstall(yuklenecekassemblyadi);}catch (System.Security.SecurityException se){
}
şeklinde de yüklenebiliniyormuş :))) Eh azmetmek gibisi yok.
Remember Me