1- namespace FSharp.Compiler.Service
1+ namespace Microsoft. FSharp.Compiler.SourceCodeServices
22
33open System.Diagnostics
44open System.Text
55open System.IO
66open System
77open System.Runtime
88
9- open Microsoft.FSharp .Compiler .SourceCodeServices
10-
119type ProjectCracker =
1210
1311 static member GetProjectOptionsFromProjectFileLogged ( projectFileName : string , ? properties : ( string * string ) list , ? loadedTimeStamp , ? enableLogging ) =
@@ -16,7 +14,7 @@ type ProjectCracker =
1614 let enableLogging = defaultArg enableLogging true
1715 let logMap = ref Map.empty
1816
19- let rec convert ( opts : FSharp.Compiler.Service .ProjectCracker.Exe.ProjectOptions ) : FSharpProjectOptions =
17+ let rec convert ( opts : Microsoft. FSharp.Compiler.SourceCodeServices .ProjectCracker.Exe.ProjectOptions) : FSharpProjectOptions =
2018 let referencedProjects = Array.map ( fun ( a , b ) -> a, convert b) opts.ReferencedProjectOptions
2119 logMap := Map.add opts.ProjectFile opts.LogOutput ! logMap
2220 { ProjectFileName = opts.ProjectFile
@@ -33,18 +31,18 @@ type ProjectCracker =
3331 arguments.Append( ' ' ) .Append( enableLogging.ToString()) |> ignore
3432 for k, v in properties do
3533 arguments.Append( ' ' ) .Append( k) .Append( ' ' ) .Append( v) |> ignore
36-
34+ let codebase = Path.GetDirectoryName( Uri( typeof< ProjectCracker>. Assembly.CodeBase) .LocalPath)
35+
3736 let p = new System.Diagnostics.Process()
38- p.StartInfo.FileName <- Path.Combine( Path.GetDirectoryName( Reflection.Assembly.GetExecutingAssembly() .Location),
39- " FSharp.Compiler.Service.ProjectCracker.Exe.exe" )
37+ p.StartInfo.FileName <- Path.Combine( codebase, " FSharp.Compiler.Service.ProjectCracker.Exe.exe" )
4038 p.StartInfo.Arguments <- arguments.ToString()
4139 p.StartInfo.UseShellExecute <- false
4240 p.StartInfo.CreateNoWindow <- true
4341 p.StartInfo.RedirectStandardOutput <- true
4442 ignore <| p.Start()
4543
4644 let fmt = new Serialization.Formatters.Binary.BinaryFormatter()
47- let opts = fmt.Deserialize( p.StandardOutput.BaseStream) :?> FSharp.Compiler.Service .ProjectCracker.Exe.ProjectOptions
45+ let opts = fmt.Deserialize( p.StandardOutput.BaseStream) :?> Microsoft. FSharp.Compiler.SourceCodeServices .ProjectCracker.Exe.ProjectOptions
4846 p.WaitForExit()
4947
5048 convert opts, ! logMap
0 commit comments