質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

2回答

4012閲覧

エラー:CS5001 プログラムは、エントリポイントに適切な静的'Main'メソッドを含んでいません。

oraora

総合スコア10

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2019/02/06 08:31

編集2019/02/06 08:44
using System; using System.Collections.Specialized; namespace CommonTest { [TestClass()] public class ConfigUtilTest { private TestContext testContextInstance; private TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } [TestMethod()] public void GetSettingsTest() { Assert.AreEqual("Value1", ConfigUtil.GetSettings("testSettings", "Key1"), "Key1"); Assert.AreEqual("Value2", ConfigUtil.GetSettings("testSettings", "Key2"), "Key2"); Assert.IsNull(ConfigUtil.GetSettings("testSettings", "Key3")); Assert.IsNull(ConfigUtil.GetSettings("aaa", "Key1")); Assert.AreEqual("ValueA", ConfigUtil.GetSettings("KeyA"), "KeyA"); Assert.IsNull(ConfigUtil.GetSettings("KeyB")); } [TestMethod()] public void GetSectionTest() { Assert.IsNull(ConfigUtil.GetSection(null), "セクションキーがnull"); Assert.IsNotNull(ConfigUtil.GetSection("testSettings"), "セクションキーがnullでない"); } } internal class TestContext { } class TestClassAttribute : Attribute { } class TestMethodAttribute : Attribute { } class Assert { internal static void AreEqual(string v1, object p, string v2) { throw new NotImplementedException(); } internal static void IsNotNull(object v1, string v2) { throw new NotImplementedException(); } internal static void IsNull(object v) { throw new NotImplementedException(); } internal static void IsNull(object v1, string v2) { throw new NotImplementedException(); } } class ConfigUtil { internal static object GetSection(object p) { throw new NotImplementedException(); } internal static object GetSettings(string v1, string v2) { throw new NotImplementedException(); } internal static object GetSettings(string v) { throw new NotImplementedException(); } } } ``````### 前提・実現したいこと Visual Studio2010から2017への移行作業の過程、単体テストプロジェクトにエラーが発生しました。 このエラーを回避するには、どのように追記・修正すればよろしいでしょうか_ ### 発生している問題・エラーメッセージ

CS5001 プログラムは、エントリポイントに適切な静的'Main'メソッドを含んでいません。

### 該当のソースコード C# ソースコード

試したこと

static void Main()を追記しましたが、{}の閉じる部分がどこに記述してもエラーとなります。

補足情報(FW/ツールのバージョンなど)

当方、C#をはじめオブジェクト指向言語は初心者です。
ご指摘があった場合には適当な表現で返答できないかもしれませんが、
精一杯返答・捕捉させていただきます。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

azuapricot

2019/02/06 08:34

コードはマークダウンボタン (<code>ってやつです)を押したらでてくる ```ここに言語を入力 コード ``` ↑の枠の中のコードという文言を消して貼りつけてください。 「ここに言語を入力」という文字を消して使っている言語名を記述してください
oraora

2019/02/06 09:13

ご指摘、ご説明、ありがとうございます。 他にも何かございましたら、よろしくお願いします。
hihijiji

2019/02/06 09:26

そもそも単体テストプロジェクトに'Main'メソッドは無いのです。 何をしたとき、どんなタイミングでエラーが発生しましたか?
oraora

2019/02/06 09:46

元のコードを貼ります。 これはVisual Studio2010ではビルドできていたもので、2017で新規にテストプロジェクトを作成しコピペしたところ、先述のエラーが出ました。 他にもエラーが多数出ましたが、Visual Studioが教えてくれる解決策に従って進めて、他のエラーは消えました。 何のためのアプリかは多少わかっているのですが、そもそも単体テストプロジェクト自体の意味合いや動作を理解できていないので、恐縮ながら質問させていただいた次第です。 ---- 元のコード(Visual Studio2010) ---- using XXXX.XXXXXX.Common.Util; using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Collections.Specialized; namespace CommonTest { [TestClass()] public class ConfigUtilTest { private TestContext testContextInstance; public TestContext TestContext { get { return testContextInstance; } set { testContextInstance = value; } } [TestMethod()] public void GetSettingsTest() { Assert.AreEqual("Value1",ConfigUtil.GetSettings("testSettings", "Key1"), "Key1"); Assert.AreEqual("Value2", ConfigUtil.GetSettings("testSettings", "Key2"), "Key2"); Assert.IsNull(ConfigUtil.GetSettings("testSettings", "Key3")); Assert.IsNull(ConfigUtil.GetSettings("aaa", "Key1")); Assert.AreEqual("ValueA", ConfigUtil.GetSettings("KeyA"), "KeyA"); Assert.IsNull(ConfigUtil.GetSettings("KeyB")); } [TestMethod()] public void GetSectionTest() { Assert.IsNull(ConfigUtil.GetSection(null), "セクションキーがnull"); Assert.IsNotNull(ConfigUtil.GetSection("testSettings"), "セクションキーがnullでない"); } } }
guest

回答2

0

Mainメソッドを追加しよう、という回答になりますが、

static void Main()を追記しましたが、{}の閉じる部分がどこに記述してもエラーとなります。

エラーになるならそのエラーメッセージを提示しましょう

投稿2019/02/06 09:47

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

oraora

2019/02/06 10:20

情報不足で申し訳ありません。 以下のような回答でよろしいでしょうか? ("どこに記述しても"と書きましたが、今回は2パターンのみの回答でご容赦ください) "static void Main()"を追記 ① public class ConfigUtilTest { static void Main() { } private TestContext testContextInstance;   →エラーはCD5001のみ ②   static void Main() { private TestContext testContextInstance;     省略       }      }     } End Of Souce   →エラー:CS5001        CS1513 }が必要です。        CS1022 型、名前空間の定義、またはファイルの終わりが必要です。
y_waiwai

2019/02/06 10:23

エラーメッセージは、質門を編集して追記してください また、エラーメッセージは、翻訳や省略せず、出たそのままをコピペで提示してください
guest

0

自己解決

どうやらプロジェクトの最初の作成方法に問題がありました。
テストプロジェクトではなく、Windowsフォームを作成し、
VS2010のソースをコピペしたことが問題だったようです。
しかしながら、テストプロジェクトデ再作成したところ、
ビルドは通りましたが実行はできませんでした。
それは別途質問させていただき、当質問は締めさせていただきます。

ご指摘、ご回答をいただいたみなさま、
また閲覧されたみなさま、ありがとうございました。
そして、すみませんでした。

投稿2019/02/07 01:53

oraora

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問