Esempio n. 1
0
        void SetUpAssembly()
        {
            var outputFile = BuildOutputAssemblyName();
            var asmName = CreateAssemblyName(outputFile);
            var assemblyBuilderAccess = GetAssemblyBuilderAccess();
            var targetDirectory = GetTargetDirectory(outputFile);
            _asmBuilder = string.IsNullOrEmpty(targetDirectory)
                ? AppDomain.CurrentDomain.DefineDynamicAssembly(asmName, assemblyBuilderAccess)
                : AppDomain.CurrentDomain.DefineDynamicAssembly(asmName, assemblyBuilderAccess, targetDirectory);

            if (Parameters.Debug)
            {
                // ikvm tip:  Set DebuggableAttribute to assembly before
                // creating the module, to make sure Visual Studio (Whidbey)
                // picks up the attribute when debugging dynamically generated code.
                _asmBuilder.SetCustomAttribute(CreateDebuggableAttribute());
            }

            _asmBuilder.SetCustomAttribute(CreateRuntimeCompatibilityAttribute());
            _moduleBuilder = _asmBuilder.DefineDynamicModule(asmName.Name, Path.GetFileName(outputFile), Parameters.Debug);

            if (Parameters.Unsafe)
            {
                _asmBuilder.SetCustomAttribute(CreateSecurityPermissionAttribute("SkipVerification"));
                _moduleBuilder.SetCustomAttribute(CreateUnverifiableCodeAttribute());
            }

            _sreResourceService = new SREResourceService (_asmBuilder, _moduleBuilder);
            ContextAnnotations.SetAssemblyBuilder(Context, _asmBuilder);

            Context.GeneratedAssemblyFileName = outputFile;
        }
Esempio n. 2
0
        void SetUpAssembly()
        {
            string fname = Parameters.OutputAssembly;
            if (0 == fname.Length)
            {
                fname = CompileUnit.Modules[0].Name;
            }

            string outputFile = BuildOutputAssemblyName(fname);

            AssemblyName asmName = CreateAssemblyName(outputFile);
            _asmBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(asmName, GetAssemblyBuilderAccess(), GetTargetDirectory(outputFile));
            if (Parameters.Debug)
            {
                // ikvm tip:  Set DebuggableAttribute to assembly before
                // creating the module, to make sure Visual Studio (Whidbey)
                // picks up the attribute when debugging dynamically generated code.
                _asmBuilder.SetCustomAttribute(CreateDebuggableAttribute());
            }
            _asmBuilder.SetCustomAttribute(CreateRuntimeCompatibilityAttribute());
            _moduleBuilder = _asmBuilder.DefineDynamicModule(asmName.Name, Path.GetFileName(outputFile), Parameters.Debug);
            _sreResourceService = new SREResourceService (_asmBuilder, _moduleBuilder);
            ContextAnnotations.SetAssemblyBuilder(Context, _asmBuilder);

            Context.GeneratedAssemblyFileName = outputFile;
        }