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)
_moduleBuilder.SetCustomAttribute(CreateUnverifiableCodeAttribute());
_sreResourceService = new SREResourceService (_asmBuilder, _moduleBuilder);
ContextAnnotations.SetAssemblyBuilder(Context, _asmBuilder);
Context.GeneratedAssemblyFileName = outputFile;
}