当前位置: 首页>>代码示例>>C#>>正文


C# AssemblyResolver.RemoveSearchDirectory方法代码示例

本文整理汇总了C#中AssemblyResolver.RemoveSearchDirectory方法的典型用法代码示例。如果您正苦于以下问题:C# AssemblyResolver.RemoveSearchDirectory方法的具体用法?C# AssemblyResolver.RemoveSearchDirectory怎么用?C# AssemblyResolver.RemoveSearchDirectory使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AssemblyResolver的用法示例。


在下文中一共展示了AssemblyResolver.RemoveSearchDirectory方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Main

        static void Main(string[] args)
        {
            string directory = @"..\..\TestAssemblies\Gendarme\";
            string output = @"..\..\output\";

            IList<string> toMerge = new List<string>(), toCopy = new List<string>();

            foreach(var file in Directory.EnumerateFiles(directory, "Gendarme.Rules.*",SearchOption.TopDirectoryOnly))
            {
                FileInfo fi = new FileInfo(file);
                toMerge.Add(fi.Name);
            }

            //toMerge = new List<string>() { "gendarme.exe" };
            //toCopy = new List<string>() { "gendarme.exe" };
            //toCopy = new List<string>() { "Castle.Windsor.dll", "Castle.Core.dll" };
               // toMerge = new List<string>() { "monolinker.exe", "Mono.Cecil.dll" , "Mono.Cecil.Rocks.dll" };
            //toMerge = new List<string>() { "JanuszLembicz.PW.UI.Forms.exe", "JanuszLembicz.PW.BLC.dll", /*"JanuszLembicz.PW.Common.dll",*/ "JanuszLembicz.PW.UI.Form.Utils.dll" };
            //toCopy = new List<string>() { "Mono.Cecil.dll", "Mono.Cecil.Rocks.dll","monolinker.exe", "Lucene.Net.dll" };

            IList<AssemblyDefinition> assembliesToMerge = new List<AssemblyDefinition>();
            IList<AssemblyDefinition> assembliesToCopy = new List<AssemblyDefinition>();

            AssemblyResolver resolver = new AssemblyResolver();

            foreach(var dir in resolver.GetSearchDirectories())
            {
                resolver.RemoveSearchDirectory(dir);
            }
            resolver.AddSearchDirectory(directory);

            var parameters = new ReaderParameters()
            {
                AssemblyResolver = resolver,
            };

            foreach(var assembly in toMerge)
            {
                assembliesToMerge.Add(AssemblyDefinition.ReadAssembly(directory + assembly, parameters));
            }

            foreach(var assembly in toCopy)
            {
                assembliesToCopy.Add(AssemblyDefinition.ReadAssembly(directory + assembly, parameters));
            }

            MergeAssemblies merger = new MergeAssemblies();

            Console.WriteLine("Merging");
            try
            {
                AssemblyDefinition merged = merger.MergeAssemblies(assembliesToMerge);
                if(merged != null)
                    merged.Write(output + merged.Name.Name + (merged.MainModule.Kind == ModuleKind.Dll ? ".dll" : ".exe"));
            }
            catch(OperationCanceledException e)
            {
                Console.WriteLine(e.Message);
            }
            Console.ReadKey();

            Console.WriteLine("Copying");
            foreach(var assembly in assembliesToCopy)
            {
                AssemblyDefinition copy = merger.CopyAssembly(assembly);
                if(copy != null)
                    copy.Write(output + copy.Name.Name + (copy.MainModule.Kind == ModuleKind.Dll ? ".dll" : ".exe"));
            }

            Console.ReadKey();
        }
开发者ID:Cadla,项目名称:OBFSCTR,代码行数:71,代码来源:Program.cs


注:本文中的AssemblyResolver.RemoveSearchDirectory方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。