2017-11-13 31 views
0

私はIIS 502.5のエラーと関連して見つけ出すことができたトラブルシューティングの手順は成功していませんでした。「エントリポイントを含む型を指定するために/ mainでコンパイルする」というエラーは何ですか?平均

私は、コマンドラインからdotnet publishを使って始めようとしましたが、アプリケーションに2つのエントリポイントがあり、「/ mainでコンパイルしてエントリを含むタイプを指定する必要がありました。ポイント。"まず、プロジェクトにMain()メソッドが1つしかないことを確認するために、私のソリューションをチェックしました。ターゲット名前空間がcsprojファイルで指定されているにもかかわらず、私は何もトーンを残しておらず、/ mainスイッチを使ってdotnet buildを実行しようとします。

だから...そのエラーメッセージは私に伝えているのですが、次に私が特定したことを発見するためにどこを見てみるかは、恥ずかしい開発者のエラーになるでしょう。

+0

:だから1は、csprojファイル(静的MyLib.AlternativeProgram.Main()メソッドを想定)の内側にそれを指定することができ、次のいずれか

<PropertyGroup> <StartupObject>MyLib.AlternativeProgram</StartupObject> </PropertyGroup> 

またはプロパティを設定するためのMSBuild構文を理解するコマンドの引数として指定しますあなたのIISホスティングの問題を解決するか、/ main(+ 'dotnet build')の問題についての説明が必要ですか? 2つの異なる質問のようです。 –

+0

どちらも、私はこの質問を書き換えて、IISから切り離しました。 – pthalacker

答えて

1

私が最後にアプリを正常に実行できてから、私はテストSDKライブラリを15.3.0から15.5.0にアップグレードしたことに気付きました。私はテストプロジェクトにメインプログラムを注入するMSTestに関するいくつかの問題を読んでいたので、バージョン15.3.0に戻って、私のプログラムは今開発中です。 Andrew Lockがthis blog postのバージョン15.3.0で詳しく説明しているので、2つのバージョン間で何が変更されたのかはわかりません。なぜ私がバージョン15.3.0で大丈夫だったのかわかりません。

はまだあなたがすでに判明しているように、試験SDKは自動的に「」テストの主な方法があることを確認するために、追加のコードファイルを生成IIS

0

で502.5エラーと私の問題を解決しませんでしたライブラリ ""(これはアプリケーションになります)は、純粋にmainメソッドが呼び出されることはなく、アプリケーションの作成による副作用だけでもアプリケーションが "実行可能"な出力を生成するようトリガされるビルドロジックを使用しますテストランナーが使用します。

/mainパラメータに関するエラーは、コンパイラによって生成されます。 csc.exeコンパイラを直接呼び出すときは、複数のオプションがある場合にどのメインメソッドを使用するかを指定するときに使用するパラメータです。

ただし、プロジェクトファイル(.csproj)をビルドするために使用されるビルドツールは、msbuildロジックを使用してコンパイラを呼び出します。このmsbuildツールは、msbuild固有のパラメータのみを認識し、cscのパラメータは認識しません。残念ながら、エラーメッセージは、cscコマンドラインホストがコンパイルを実行するために使用されたという前提のもとに作成されました。

MSBuildは、StartupObjectプロパティを使用して、この構成オプションをコンパイラに渡します。あなたがしようとしています

$ dotnet build /p:StartupObject=MyLib.AlternativeProgram 

> msbuild.exe /p:StartupObject=MyLib.AlternativeProgram 
+0

徹底的な回答ありがとうございます。私は今週15.5に再度アップグレードし、あなたの解決策をテストする時間がありません。しかし、私は来週の時間を見つけて、私がどのように運賃を知っているか教えてくれます。 – pthalacker

+0

これは問題を解決するつもりはないと思っています。エラーの意味と、この場合は '/ main'引数をどのように制御するのかを説明しています。(それは質問を混在させる危険性があります) –

関連する問題