File tree Expand file tree Collapse file tree 2 files changed +11
-5
lines changed Expand file tree Collapse file tree 2 files changed +11
-5
lines changed Original file line number Diff line number Diff line change 11namespace Naggum.Test
22
3+ open System
34open System.Diagnostics
45open System.IO
5- open System.Reflection
66
77open Xunit
88
@@ -20,7 +20,8 @@ type CompilerTest() =
2020 let basePath = Path.Combine( directory, testName)
2121 let testPath = Path.ChangeExtension( basePath, testExtension)
2222 let resultPath = Path.ChangeExtension( basePath, resultExtension)
23- let executablePath = Path.ChangeExtension( testName, executableExtension)
23+ let executableName = Path.ChangeExtension ( testName, executableExtension)
24+ let executablePath = Path.Combine ( Environment.CurrentDirectory, executableName)
2425
2526 use stream = File.Open( testPath, FileMode.Open)
2627 Generator.compile stream testName executablePath []
Original file line number Diff line number Diff line change @@ -28,9 +28,14 @@ let compileMethod context (generatorFactory : IGeneratorFactory) body (methodBui
2828
2929 epilogue context ilGenerator
3030
31- let compile ( source : Stream ) ( assemblyName : string ) ( fileName : string ) ( asmRefs : string list ): unit =
32- let assemblyName = new AssemblyName( assemblyName)
33- let assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly( assemblyName, AssemblyBuilderAccess.Save)
31+ let compile ( source : Stream ) ( assemblyName : string ) ( filePath : string ) ( asmRefs : string list ): unit =
32+ let assemblyName = AssemblyName assemblyName
33+ let path = Path.GetDirectoryName filePath
34+ let assemblyPath = if path = " " then null else path
35+ let fileName = Path.GetFileName filePath
36+ let appDomain = AppDomain.CurrentDomain
37+
38+ let assemblyBuilder = appDomain.DefineDynamicAssembly ( assemblyName, AssemblyBuilderAccess.Save, assemblyPath)
3439 Globals.ModuleBuilder <- assemblyBuilder.DefineDynamicModule( assemblyBuilder.GetName() .Name, fileName)
3540 let typeBuilder = Globals.ModuleBuilder.DefineType( " Program" , TypeAttributes.Public ||| TypeAttributes.Class ||| TypeAttributes.BeforeFieldInit)
3641 let methodBuilder = typeBuilder.DefineMethod ( " Main" ,
You can’t perform that action at this time.
0 commit comments