Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

FSharp.Compiler.Service compile to dll errors

I am currently working on a project to implementing mutation-testing for F#. To access the FCS process I am using the FSharp.Compiler.Service package.

I am having some trouble with the compilation process and the compiled DLL.

I'm using FSharp.Compiler.Service to compile a project's AST's to

  • a dll. Another program references this dll. When compiled in visual studio everything works. When compiled from the AST's using compiler services I get method not found exceptions on every call.

  • an executable dll. However I always get the error entrypoint is not the last declaration. When inspecting what I pass to the compilation the entrypoint AST is the last AST in the list, and the entrypoint node is the last node in the AST. When compiling in visual studio there are no issues.

Has anyone encountered these issues before? Or knows a way to fix the errors I’m getting?

like image 617
dukedagmor Avatar asked Nov 20 '20 11:11

dukedagmor


2 Answers

I have done this many times. You might want to post what the input arguments are when you are trying to compile, the lack of something in the input is often the cause for an error.

like image 155
7sharp9 Avatar answered Oct 20 '22 00:10

7sharp9


Updating from FSharp.Compiler.Service 37 to 38 has resolved the methodnotfound error

By hardcoding the islastcompiled in the parsedinput (syntaxtree) to Tuple(true,true) in the syntaxtree containing the entrypoint, the error doesn't trigger.

The islastcompiled solution is sketchy and I would like to have a better way to do this.

like image 28
dukedagmor Avatar answered Oct 20 '22 00:10

dukedagmor