FSharpp to FSProj Converter

Wow, what a busy week!  The F# CTP is out the door, and it's already making reverberations around the blogospphere:

Don's Announcement
Units of Measure in F#: Part One, Introducing Units - HOTNESS
Downloading stock prices in F# - Part I - Data modeling
Welcome to the F# CTP project system: project templates
F# Scripts -- Zero to Execute in Ten Seconds 
F# Releases September CTP

I, unfortunately, am showing up late to the party since I've spent the last week kicking it old-school in Montana. Here's
a picture I snapped with my iPhone on Big Mountain in Whitefish.

iPhone 053

Anyways, never fear as I've have several blog posts queued up highlighting several parts of the F# CTP - which I'll try to release on a two-a-week schedule. This includes the final installment of "F# in 20 minutes", so stay tuned.

But this first post-CTP post will be devoted to a .fsharpp to .fsproj converter I wrote. While the new F# project system is awesome, it isn’t compatible with the old project system used in the MSR releases. The tool here will convert your old F# projects into the new format.

There are two modes of operation:

Convert a .fsharpp file
To convert an existing .fsharpp file, build the project and then run:
fsharpp2fsproj.exe <yourproject>.fsharpp

Convert an F# project built via command line
For more complex projects (typically built using a command line) you can convert a project based on the full command-line parameters passed to fsc.exe.

For example, if the project was built using:
fsc.exe file1.fs file2.fs -R Reference.dll -o MyProgram.exe

Save a file named "args.txt" with text "fsc.exe file1.fs file2.fs -R Reference.dll -o MyProgram.exe" and then run
fsharpp2fsproj.exe args.txt


  • It isn't perfect (read: you might find a bug)
  • It isn't supported (read: I might not fix your bug)
  • But if you do run into a problem let me know by sending mail to chrsmith at Microsoft.com or using the contact link on this blog.

I hope it is of use to you and definitely enjoy the F# CTP!

Disclaimer: All code samples are provided "AS IS" without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. So in other words, if the attached source files cause you any grief whatsoever you can’t blame me or Microsoft.