none
ビルドはできるが、常に「型または名前空間名 ○○○が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」が表示される。 RRS feed

  • 質問

  • 皆さんこんにちは。

    現在タイトルの問題が発生して困っています。
    初歩的な質問かもしれませんが、なにかヒントがあったら教えてください。よろしくお願いいたします。

    エラー 1 型または名前空間名 'debugLogData' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。

    開発環境は

    visualstudio2013

    .netframework4.5.1
    C#

    です。

    下記のコードで、エラーが出ていています。
    この状態でも、ビルドは問題ありません。
    しかしながらインテリセンスやリファクター機能が使えずかなり不便です。あとやっぱり気持ち悪いです。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Text;
    using System.Web.Http;
    
    namespace azureStrageMan.Controllers
    {
        public class debugLogData
        {
            [Required]
            public String UsreId { get; set; }
            [Required]
            public String Appid { get; set; }
            [Required]
            public String memo1 { get; set; }
        }
    
        public class debugController : ApiController
        {
            [Authorize]
            public IHttpActionResult Post(debugLogData sendData)
            {
                if (!ModelState.IsValid)
                {
                    System.Diagnostics.Trace.TraceError("ModelState.IsValid error");
                    return BadRequest(ModelState);
                }
                try
                {
                    var result = new LoggingClass();
                    if (result.Add(sendData.UsreId, sendData.Appid, sendData.memo1) != 0)
                    {
                        System.Diagnostics.Trace.TraceError("logAddエラー");
                        throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest));
                    }
                    return Ok();
                }
                catch (Exception e)
                {
                    System.Diagnostics.Trace.TraceError(e.Message);
                    throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError));
                }
            }
        }
    }
    

    オブジェクトブラウザで確認しましたが、
    azureStrageMan
    を選択しても何も展開されません。変ですよね。

    個人的には文法的に問題無いと思うんですが(C#歴短いので怪しいですが)、やはりどこかおかしいですかね。
    文法でないとするとVSの環境設定に問題があるのでしょうか?

    以上です。よろしくお願いします。


    2014年7月18日 2:04

回答

  • いろいろ試してみた結果を報告いたします。

    当方プロジェクト(ソリューション)を開くとき、スタートメニューの「最近使用したファイル」を使って開いています。
    いつも使うファイルはピン止めしています。
    どうやらここに問題があるようです。
    試しにエクスプローラーから直接ソリューションファイルをクリックして起動してみたところ、問題は解消しました。

    そもそも「最近使用したファイル」を使用してプロジェクトを開くものではないのかな?
    とも思いましたが、その上のスタートメニューの「プロジェクトを開く」から開いても現象は同じででしたので、そんな話じゃありませんね。

    プロジェクトに関わるファイルがなんかおかしくなっているのだろうか?

    ということで、試しに「azureStrageMan.v12.suo」ファイルを削除してみました。
    消しちゃっていいものか判断つきませんでしたが、問題なさそうなので思い切ってやってみました。
    http://msdn.microsoft.com/ja-jp/library/xhkhh4zs.aspx
    http://blog.goo.ne.jp/speedmaster2005/e/545769007131fbd4fde4abcd64ff77eb
    とりあえず、suoファイル削除で問題は解消したように見えます。
    確認した所、新しいsuoファイルもできています。

    根本的な解決になっているのかわかりませんが、とりあえず問題解消しましたのでご報告しておきます。

    再度問題発生した場合、またご協力ください。
    お騒がせいたしまして申し訳ありませんでした。ありがとうございました。

    • 回答としてマーク kozouzushi 2014年7月18日 7:15
    2014年7月18日 6:41

すべての返信

  • アップされたコードを見る限り、文法的にはそのようなエラーが出ることはあり得ないので、質問者さんの環境固有の何かがあると思いますが。

    どのようなプラットフォームで何を開発しているのでしょう?

    それが分かれば、回答者の方でも同様な条件で問題を再現してみるとかして、何か情報が得られるかもしれません。

    #Azure 上で ASP.NET Web API 2 とか言われると、その環境を持ってない自分はお手上げですが、他の回答者に期待して・・・

    2014年7月18日 3:37
  • 外しているかも知れませんが、まずプロジェクトをリビルドしてみてはいかがでしょうか?
    それでもエラーが表示されるなら、手元に同じ環境がない限り、私もお手上げです。

    ひらぽん http://d.hatena.ne.jp/hilapon/

    2014年7月18日 4:32
    モデレータ
  • こんにちは。

    ご回答有難うございます。

    おっしゃるとおりAZUREに配置するWEB APIのプロジェクトです。

    開発環境はWindows7 64it
    visualstudio2013Ultimete
    です。

    あと、当方の開発ライブラリのプロジェクトをソリューションに含めいています。
    コレが怪しいかも。
    もう少し調査してみます。

    ありがとうございました。

    2014年7月18日 4:43
  • はじめまして、こんにちは。

    リビルドやクリーンは何度も試していますがうまくいきませんね。

    で、試しに、ソリューションをまるごと別のフォルダにをコピーしてVS2012Proで開いてみました。
    前述した当方開発プロジェクトへの参照が、コピー先のフォルダに変わったため(なぜ変わるのか不明)、エラーになりました。
    一旦当方開発ライブラリをソリューションから外して、再度ソリューションに追加してみました。
    すると、何故か問題解決していました。不思議です。

    同じくコピーしたものをvisualstudio2013Ultimeteで試してみます。

    結果わかりましたらまたご報告させていただきます。

    ありがとうございました。



    2014年7月18日 4:55
  • 前述した当方開発プロジェクトへの参照が、コピー先のフォルダに変わったため(なぜ変わるのか不明)、エラーになりました。

    差分で確認したら参照は相対指定になっていました。なので変わるのは正常ということですね。失礼しました。
    2014年7月18日 5:19
  • いろいろ試してみた結果を報告いたします。

    当方プロジェクト(ソリューション)を開くとき、スタートメニューの「最近使用したファイル」を使って開いています。
    いつも使うファイルはピン止めしています。
    どうやらここに問題があるようです。
    試しにエクスプローラーから直接ソリューションファイルをクリックして起動してみたところ、問題は解消しました。

    そもそも「最近使用したファイル」を使用してプロジェクトを開くものではないのかな?
    とも思いましたが、その上のスタートメニューの「プロジェクトを開く」から開いても現象は同じででしたので、そんな話じゃありませんね。

    プロジェクトに関わるファイルがなんかおかしくなっているのだろうか?

    ということで、試しに「azureStrageMan.v12.suo」ファイルを削除してみました。
    消しちゃっていいものか判断つきませんでしたが、問題なさそうなので思い切ってやってみました。
    http://msdn.microsoft.com/ja-jp/library/xhkhh4zs.aspx
    http://blog.goo.ne.jp/speedmaster2005/e/545769007131fbd4fde4abcd64ff77eb
    とりあえず、suoファイル削除で問題は解消したように見えます。
    確認した所、新しいsuoファイルもできています。

    根本的な解決になっているのかわかりませんが、とりあえず問題解消しましたのでご報告しておきます。

    再度問題発生した場合、またご協力ください。
    お騒がせいたしまして申し訳ありませんでした。ありがとうございました。

    • 回答としてマーク kozouzushi 2014年7月18日 7:15
    2014年7月18日 6:41
  • もしかして、エラーウィンドウにだけ表示され、出力ウィンドウには表示されていないということでしょうか? もしそうならコンパイルには何ら関係がありません。
    2014年7月18日 8:08
  • はい、エラーWindowに表示されるのですが、問題なくコンパイルは出来る状態です。今回メンテの必要が出てきたのですが、その際vsがエラーと認識してるためインテリセンスが機能せず不便だなと。よくわかりませんがvsの不具合なんでしょうね。
    2014年7月20日 4:23