{"id":950,"date":"2010-02-14T16:56:07","date_gmt":"2010-02-14T16:56:07","guid":{"rendered":"http:\/\/www.navision-blog.de\/2010\/02\/14\/fake-f-make-0-29-released-ready-for-f-february-2010-ctp-and-net-4-0-rc\/"},"modified":"2010-02-14T17:46:40","modified_gmt":"2010-02-14T17:46:40","slug":"fake-f-make-0-29-released-ready-for-f-february-2010-ctp-and-net-4-0-rc","status":"publish","type":"post","link":"http:\/\/www.navision-blog.de\/blog\/2010\/02\/14\/fake-f-make-0-29-released-ready-for-f-february-2010-ctp-and-net-4-0-rc\/","title":{"rendered":"&ldquo;FAKE &ndash; F# Make&rdquo; 0.29 released &ndash; Ready for F# February 2010 CTP and .NET 4.0 RC"},"content":{"rendered":"<p>Last week I released version 0.29 of my build automation tool \u201cFAKE \u2013 F# Make\u201d. The new version comes along with a couple of changes which I will now describe.<\/p>\n<h5>F# February 2010 CTP and .NET 4.0 RC<\/h5>\n<p>\u201cFAKE \u2013 F# Make\u201d should be completely compatible with both, the <a href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=151924\">F# February 2010 CTP<\/a> and the F# version which is included in <a href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=151923\">Visual Studio 2010 RC<\/a>.<\/p>\n<h5>FAKE self build and binaries on teamcity.codebetter.com<\/h5>\n<p>Since \u201cFAKE \u2013 F# Make\u201d is a build automation tool, it was always used for it\u2019s own build process. Now this build process could be moved to an open CI server at <a href=\"http:\/\/teamcity.codebetter.com\/viewType.html?buildTypeId=bt114&amp;tab=buildTypeStatusDiv\">teamcity.codebetter.com<\/a>. If you login as a guest you can download the latest \u201cFAKE \u2013 F# Make\u201d binaries from there.<\/p>\n<h5>FAKE on build servers without F#<\/h5>\n<p>With the new F# CTP there is no longer a need for installing F# on the build agents. In fact FAKE itself was built on build agents which don\u2019t have a F# installation. <\/p>\n<p>If you want to create such build scripts you have to do the following:<\/p>\n<ol>\n<li>Download the standalone zip file of the <a href=\"http:\/\/www.microsoft.com\/downloads\/details.aspx?FamilyID=ba52e650-4e77-4b0b-b987-9f9ecd3bab3b&amp;displaylang=en\">F# CTP<\/a> <\/li>\n<li>Put the bin subfolder into your project tree <\/li>\n<li>Modify the FSIPath value in the FAKE.exe.config file to match your FSharp bin folder\n<ol>\n<li>If you copy the contents the F# bin folder into .\/tools\/FSharp\/ it should just work. <\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>If you have F# projects you also need to modify your .fsproj files like this:<\/p>\n<p>&lt;PropertyGroup&gt;    <br \/>&#160;&#160; \u2026.     <br \/>&#160; &lt;FscToolPath&gt;..\\..\\..\\tools\\FSharp\\&lt;\/FscToolPath&gt;     <br \/>&lt;\/PropertyGroup&gt;     <br \/>\u2026     <br \/>&lt;Import Project=&quot;..\\..\\..\\tools\\FSharp\\Microsoft.FSharp.Targets&quot; \/&gt;<\/p>\n<p>This modifications should take care that MSBuild will use the F# compiler from your tools paths.<\/p>\n<h5>Generate your documentations with \u201cdocu\u201d<\/h5>\n<blockquote>\n<p><strong>\u201cWhat&#8217;s a docu?<\/strong> A documentation generator for .Net that isn&#8217;t complicated, awkward, or difficult to use. Given an assembly and the XML that&#8217;s generated by Visual Studio, docu can produce an entire website of documentation with a single command.\u201d [<a href=\"http:\/\/docu.jagregory.com\/\">docu Homepage<\/a>]<\/p>\n<\/blockquote>\n<p>\u201cFAKE \u2013 F# Make\u201d 0.29 is bundled with this new documentation tool which can easily convert your xml-Documentation into some nice html pages. You can use the tool with the new Docu task like this:<\/p>\n<div style=\"font-family: courier new; background: white; color: black; font-size: 10pt\">\n<p style=\"margin: 0px\">Target? GenerateDocumentation &lt;-<\/p>\n<p style=\"margin: 0px\">&#160;&#160;&#160; <span style=\"color: blue\">fun<\/span> _ <span style=\"color: blue\">-&gt;<\/span><\/p>\n<p style=\"margin: 0px\">&#160;&#160;&#160;&#160;&#160;&#160;&#160; Docu (<span style=\"color: blue\">fun<\/span> p <span style=\"color: blue\">-&gt;<\/span><\/p>\n<p style=\"margin: 0px\">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {p <span style=\"color: blue\">with<\/span><\/p>\n<p style=\"margin: 0px\">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ToolPath = <span style=\"color: maroon\">@&quot;.\\tools\\FAKE\\docu.exe&quot;<\/span><\/p>\n<p style=\"margin: 0px\">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; TemplatesPath = <span style=\"color: maroon\">@&quot;.\\tools\\FAKE\\templates&quot;<\/span><\/p>\n<p style=\"margin: 0px\">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; OutputPath = docDir })<\/p>\n<p style=\"margin: 0px\">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (buildDir + <span style=\"color: maroon\">&quot;MyAssembly.dll&quot;<\/span>)<\/p>\n<\/p><\/div>\n<p>You will also need the docu templates, which you can download from the product homepage. I\u2019m planning to bundle some basic templates with the next version of FAKE.<\/p>\n<h5>What\u2019s next?<\/h5>\n<p>At the moment I\u2019m working on <a href=\"http:\/\/research.microsoft.com\/en-us\/people\/mbarnett\/ilmerge.aspx\">ILMerge<\/a> task for FAKE. I hope to release this with the next version. There are also some open issues with the Mono support but since teamcity.codebetter.com is getting a mono build agent I hope to make some progress here too.<\/p>\n<p>If you have any questions or ideas for new features please contact me.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Last week I released version 0.29 of my build automation tool \u201cFAKE \u2013 F# Make\u201d. The new version comes along with a couple of changes which I will now describe. F# February 2010 CTP and .NET 4.0 RC \u201cFAKE \u2013 F# Make\u201d should be completely compatible with both, the F# February 2010 CTP and the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[23,448,546],"tags":[492,664,545],"_links":{"self":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/950"}],"collection":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/comments?post=950"}],"version-history":[{"count":5,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/950\/revisions"}],"predecessor-version":[{"id":955,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/posts\/950\/revisions\/955"}],"wp:attachment":[{"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/media?parent=950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/categories?post=950"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.navision-blog.de\/blog\/wp-json\/wp\/v2\/tags?post=950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}