4

fparsec と fsharp powerpack を利用して、F# 2.0 コンパイラ/SDK に対して動作するいくつかの F# プロジェクトを含む VS2010 用のソリューションがあります。

次に、メインの開発マシンを VS2012 にアップグレードし、ソリューションをロードして、問題なくコンパイルできました。

ただし、Windows 8 と VS2012 を搭載した別のマシンを再構築したところ、プロジェクトが F# 3.0 をターゲットにしており、fparsec/fsharp powerpack がコンパイルされていないように見えるため、そのマシンにソリューションをロードするとコンパイルが失敗します。

この新しい Windows 8 マシンに FSharp 2.0 SDK をインストールすることは可能ですか (そうであれば、どこから入手できますか?)、ソリューションを再度コンパイルするか、両方でこれを機能させるために何か他のことをする必要がありますか?古い機械と新しい機械?

2012-10-25 更新

VS2012 の再起動後にコンパイルが機能するようになりましたが、コードを実行すると、F# コードに関連する予期しないエラーが発生します。

Method not found: 'ParserResult`2<!!0,Microsoft.FSharp.Core.Unit> FParsec.CharParsers.run(
Microsoft.FSharp.Core.FSharpFunc`2<FParsec.CharStream`1<Microsoft.FSharp.Core.Unit>,
FParsec.Reply`1<!!0>>, System.String)'.

これは、最初に VS2010 が F# と共にインストールされ、次に vs2012 にアップグレードされたマシンで同じコードをコンパイル/実行する場合には発生しません - vs2012 がインストールされたマシンでのみ発生します。

何か案は?

4

1 に答える 1

2

ターゲット フレームワークを "4.0" (またはそれ以下) に設定すると、F# 2.0 と同じようにコンパイルされるはずです (自動プロパティなどの新しい優れた機能がいくつかあります)。私には、新機能を除外することに固執する理由はないと思います。また、F# 3.0 で提供されたすべてのバグ修正を除外する理由はまったくありません。

于 2012-10-24T21:28:12.197 に答える