5

F# ソリューションに 2 つのプロジェクトがあります。
1. メイン プロジェクトを[EntryPoint]StarUp プロジェクトとして設定します。
2. 2 番目のプロジェクトである support は、サポート モジュールのグループを保持します。つまり、それらは呼び出されるだけで、何も開始せず、エントリ ポイントとしても機能せず、スタートアップ プロジェクトでもありません。

サポート プロジェクトの最後のモジュールの場合、Visual Studio でコンパイルすると、

警告 FS0988: プログラムのメイン モジュールが空です。実行しても何も起こりません

警告の原因となるモジュールのようにコンパイラ オプション noarn inlineを使用#nowarn "988"すると、メッセージが抑制されますが、問題を解決するコメント付きのダミー関数のようなものを追加したいと思います。

このようなダミー関数を作成して警告を解決するにはどうすればよいですか?

編集

Console Application私のサポート プロジェクトがではなくとしてセットアップされたという点で、Jack は正しいClass Libraryです。に変更するとClass Library、警告が解決されました。do ()他のケースについても知っておくと便利です。

編集

サポート プロジェクトを として設定するのは奇妙に思えましたConsole Applicationが、最近、プロジェクトのコードを変更したときに何らかの理由で出力タイプが からClass Libraryに変更されたことに気付きましたConsole Application。F# PowerPack とビルド ルールが関係していると思われますが、推測にすぎません。

4

1 に答える 1

10

サポート プロジェクトを として構築してLibraryConsole Applicationますか? (これは、プロジェクトのプロパティ ページで設定されます。)

do()ライブラリとしてビルドする場合は、プロジェクトの最後のファイルの最後にa を追加する必要がある場合があります。これは、アセンブリ レベルの属性のみを含むモジュールを作成する場合など、いくつかの特定のシナリオで F# コンパイラを満足させるために必要です (アセンブリに適用されるため、モジュールはコンパイラには "空" に見えます)。

ここで私のコードの例を見ることができます: https://github.com/jack-pappas/FSharp.Compatibility/blob/master/FSharp.Compatibility.OCaml/AssemblyInfo.fs

于 2013-03-01T13:57:25.623 に答える