2012-08-07 35 views
12

私はSnarl C# APIを使用してsnarlに通知を送信しています。エラーが発生するのはなぜですか?CS0246:型または名前空間の名前が見つかりませんでしたか?

は今、私はSnarlNetwork.csという名前のファイルに上記のURLの内容を保存しているし、私のtest.csファイルの内容は以下のとおりです。私はcsc test.csを使用して、私のtest.csファイルをコンパイルしようとすると

using SnarlNetworkProtocol; 
using System; 
class test 
{ 
    public static void Main(String[] args) 
    { 
     SNP snarl_object = new SNP(); 
     string hostname = "localhost"; 
     string hostport = "9887"; 
     string appName = "Spotify"; 

     bool val = snarl_object.register(hostname, hostport, appName); 

     if (val == true) 
     { 
      string title = "hello"; 
      string message = "world"; 
      string timeout = "5"; 
      bool newval = snarl_object.notify(hostname, hostport, appName, null, title, message, timeout); 

      if (newval == true) 
      { 
       Console.WriteLine("sucessfull"); 

      } 
     } 
    } 

} 

は今、私が取得しますエラー以下:だから

C:\Users\Noob\csharp>csc test.cs 
Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.4926 
for Microsoft (R) .NET Framework version 3.5 
Copyright (C) Microsoft Corporation. All rights reserved. 

test.cs(1,7): error CS0246: The type or namespace name 'SnarlNetworkProtocol' could not be found (are you missing a using directive or an assembly reference?) 

、私はどんなusing directiveが欠落していないです、私に従っているため、ここで間違って何をやっています。

答えて

11

を参照してください。これは問題です。

C:\Users\Noob\csharp>csc test.cs /r:SnarlNetwork.dll 

(またはアセンブリが呼び出されたもの)が必要です。また

、あなたが別のライブラリとしてそれを持っていない場合は、単に両方のファイルにコンパイル:あなたがアセンブリをコンパイルしていないが、は、あなたが使用することができますしたい場合は

C:\Users\Noob\csharp>csc test.cs SnarlNetwork.cs 

を:

csc /target:library /out:SnarlNetwork.dll SnarlNetwork.cs 

csc Test.cs /r:SnarlNetwork.dll 

(実際には、出力ファイルを指定すると、この特定の場合には不要ですが、それはまだ明確だ...)

+0

ありがとうございます。出来た。 – RanRag

+0

答えとしてマークしますか? –

+0

@JamesWood:私はstackoverflowに「あなたは2分で答えを受け入れることができる」と言います – RanRag

7

編集:O私を無視、あなたは、Visual Studioを使用していない

は、あなたのプロジェクトへの参照を追加したことがありますか?この種のもののように

enter image description here

+1

これは、Visual Studioにあまり馴染みのない人にとっては、今でも役に立つ答えです。 – David

2

私が使用して文を持っていますが、名前空間を定義するアセンブリを参照するために忘れてしまったとき、これは通常、私に起こります。

しかし、あなたの場合、プロジェクト内のファイルに名前空間が定義されているので、snarlnetwork.csファイルについてコンパイラに忘れてしまいます。

C:\Users\Noob\csharp>csc test.cs 

あなたはDLLへの参照を追加していない:

csc compiler examples

+0

'SnarlNetwork.cs'と' test.cs'ファイルだけがmyフォルダにありません。私は何かが欠けている。 – RanRag

3

それはデュかもしれませんeから.NET Frameworkの "クライアントプロファイル"に変換します。 .NETの「フルバージョン」を使用してみてください。

1

MVCプロジェクトでこのエラーが発生しました。そして、長い研究の後、メインプロジェクトで参照しているクラスのいくつかを含む.csファイルにビルドアクションが "コンテンツ"に設定されていることがわかりました...

"Content" - > "Compile "エラーは消えた。

0

csファイルをプロジェクトフォルダ内に配置しても同じエラーが発生しましたが、参照しませんでした。親プロジェクトのcsproj。 Intellisenceはプロジェクトフォルダ内でこのファイルを参照しますが、.csprojの参照がないためコンパイラに表示されません

0

この問題は、System.Webへの参照を追加することで解決しました。

2

この問題は、プロジェクトアプリケーションの設定でターゲットフレームワークを更新することで解決しました。 プロジェクトは.netフレームワークバージョン4.5.1でコンパイルされていましたが、参照されたdllはバージョン4.6.1でコンパイルされていました。 プロジェクトのバージョンを更新しました。

+0

あなたは非常にありがとう –

7

enter image description hereは私がの.NET Framework 4.5を使用していましたが、私の新しいライブラリがの.NET Framework 4.5.2を持っていたし、私が構築しようとしたとき、私は同じ問題を得ました。私は4.5から4.5.2(私のライブラリと同じです)から私のプロジェクトを更新して解決しました。

0

参照がないためにこのエラーが発生しました。 私が気づいていなかったのは、Resharperがusingとreferenceを追加するためです。使用に成功すると(ただし、灰色で強調表示されます)、欠落しているクラスの構文の強調表示は機能しますが、参照を追加すると暗黙に失敗します。

手動で参照を追加すると、参照の追加に失敗した理由(循環参照)を説明するエラーがポップアップします。 ResharperはこのエラーをGUIに渡しませんでした。

関連する問題