「クラスライブラリの出力タイプのプロジェクトは直接開始できません」


166

C#プロジェクトをダウンロードしました。プロジェクトをデバッグして、アルゴリズムの実装がどのように機能するかを確認します。

プロジェクトはフォルダに入ってきました。このフォルダ内には-

  1. .slnファイル
  2. ソースファイルとファイルを含む.csprojフォルダ

Visual Studioをインストール.slnし、メインフォルダーにあるファイルを開きました。プロジェクトは正常にビルドされましたが、プロジェクトをデバッグしようとすると、次のメッセージが表示されます。

クラスライブラリの出力タイプのプロジェクトは直接開始できませんこのプロジェクトをデバッグするには、ライブラリプロジェクトを参照する実行可能プロジェクトをこのソリューションに追加します。実行可能プロジェクトをスタートアッププロジェクトとして設定します。

奇妙なことに、メイン関数がどこにも見当たりません。

このしゃっくりを回避するにはどうすればよいですか?

回答:


173

ダウンロードしたプロジェクトはdllアセンブリにコンパイルされ、実装された機能を備えた一連のクラスを提供します。

ソリューションに、コンソールアプリケーションまたはWindowsアプリケーションの出力タイプの新しいプロジェクトを追加する必要があります(VSプロジェクトの追加ウィザードでは、プロジェクトのさまざまなテンプレートが提供されます)。

新しく追加されたプロジェクトでは、クラスライブラリをテストするロジックを実装できます。

次の手順で検索および変更できるプロジェクトの出力タイプ:

  1. ソリューションエクスプローラー->プロパティでプロジェクトを右クリックします。

  2. プロパティが表示されたタブで[アプリケーション]を選択すると、出力タイプラベルが付いたComboBoxが表示されます。


7
新しく作成したプロジェクトをスタートアッププロジェクトとして設定することを忘れないでください(新しいプロジェクトを右クリックして、[スタートアッププロジェクトとして設定]をクリックします)
bugybunny

あなたがコメントする@bugybunnyは上記の答えに欠けているものです!
泡立て器

111

Project Solution Aを右クリックすると、ウィンドウがポップアップします。共通のプロパティを展開します。[スタートアッププロジェクト]を選択します

右側のシングルスタートアッププロジェクトのラジオボタンを選択します。そこでプロジェクトを選択して適用します。

それでおしまい。次に、プロジェクトを保存してビルドします。プロジェクトを実行して出力を確認します。


60

「共通のプロパティ」オプションが見つからなかったため、これは私にとって有効な解決策でした。

  1. ソリューションエクスプローラーで最上位のプロジェクトを選択します。
  2. プロジェクトに移動し、コンテキストメニューの[ スタートアッププロジェクトとして設定 ] をクリックします。

    スタートアッププロジェクトとして設定

参照:出力タイプがクラスライブラリのプロジェクトは直接開始できません


これはVS 2015でも機能しました。新しいweb.configをビルドする必要がありましたが、その後、再び稼働しました。
エリックD.ジョンソン

Visual Studio 2019でも私のために働きました。
user0474975

100万人のおかげで、
ググリングの

19

行くだけです:

ソリューションエクスプローラー->プロパティに移動---> change(Single Startup project)from.dll to .web

次に、デバッグしてみます。

きっとあなたの問題は解決されるでしょう。


12

奇妙なことに、メイン関数がどこにも見当たりません。

それがまさにあなたの問題です。プロジェクトは単にDLLを作成するだけです。実行する実行可能ファイルがありません。

別のプロジェクトを追加する必要があります。これは、他のプロジェクトを参照し、その中の何かを呼び出す実行可能ファイルです。


ジェームスさん、わかりました。同じソリューションに新しいプロジェクトを追加しました。主な機能を持つ新しい.csファイルが作成されます。さて、私は何を参照すべきでしょうか。あなたが意味するdllに?[参照]タブを右クリックすると、[参照の追加]ウィンドウが表示されます。
HaggarTheHorrible 2010

[プロジェクト]タブに移動します。ソリューションで定義された一連のアセンブリが参照可能になります。
Eugene Cheverda 2010

1
はい、正確に。特定の使用法を追加して、そのライブラリのクラスを使用できるようにすることを忘れないでください。
Eugene Cheverda 2010

7
1) Right Click on **Solution Explorer**
2) Go to the **Properties** 
3) Expand **Common Properties**
4) Select **Start Up Project**
5) click the radio button (**Single Start_up Project**)
6) select your Project name 
7) Then Debug Your project

5

クラスライブラリを使用する何らかの種類のアプリが必要です(コンソールアプリはデバッグには私のお気に入りですが、WinFormで実行できます)。コンソールアプリケーションまたはWindowsフォームアプリケーションの(同じソリューションに)新しいプロジェクトを追加し、現在のプロジェクトへの参照を追加するだけです。それが終わったら、必要な呼び出しを行い、ブレークポイントを設定して、町に行きます。


4

Visual Studio 2013の実験的インスタンスを使用しようとすると、同様の問題が発生しました。これは、vsixプロジェクト(Creating Snippets)用でした。

解決策は:

ソリューションエクスプローラーで[プロジェクト]を右クリック > [ プロパティ] > [ デバッグ]

開始アクションを"Start external program"次のパスに設定して使用します。

C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ devenv.exe

このオプションは "Start project"、アプリケーション出力タイプのクラスライブラリでは機能しないいたため、同じエラーが発生していました。

注:VSをどのようにインストールしたかによって、実際の設定は異なる場合があります。


2
    Right Click on "Solution Explorer" -> "Properties"
    Expand "Common Properties"
    Select "Start Up Project"
    click the radio button "Single Start_up Project"
    select your Project name from the drop down list.

上記の手順を実行しても機能しない場合、これを試してください。

    Expand solutions explorer.
    Right click on project name -> "Properties"
    Go to "Application" tab
    Select "Output type" 
 From the drop down list select the appropriate type according to your application.
    "Windows application" or
    "Console application"

次に、保存(Ctrl + S)

デバッグを試す(F5)


0

ソリューションに複数のプロジェクトがあるとします。ブラウザで表示するプロジェクトを選択し、[ スタートアッププロジェクトに設定]を選択します。メインであった複数のプロジェクトソリューションでは、ビジュアルスタジオは識別できませんでした。これが主な問題でした。


0

エラーの解決策は、すでにプロジェクトを開いているが、誤って別のクラスライブラリを選択したということです。そのため、このエラーが表示されています...そのため、何を実行する必要があるのか​​を確認するには、urプロジェクトを選択し、urプロジェクトを右クリックします。

右クリックすると、リストボックスが表示さ、「スタートアッププロジェクトとして設定」を選択できます。 ]オプションを選択できます。

サイカットバニック


0

クラスライブラリプロジェクトを右クリックして、ドロップダウンから[インタラクティブC#の初期化]を選択すると、プロジェクトコンテキストが読み込まれ、インタラクティブセッションで作業できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.