45

Snarl C#APIを使用してsnarlに通知を送信しています。

これで、上記のURLのコンテンツをという名前のファイルに保存しました。ファイルのコンテンツはSnarlNetwork.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");

            }
        }
    }

}

を使用してtest.csファイルをコンパイルしようとするとcsc test.cs、次のエラーが発生します。

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

4

17 に答える 17

44

.NET Framework 4.5を使用していましたが、新しいライブラリには.NET Framework 4.5.2があり、ビルドしようとしたときに同じ問題が発生しました。プロジェクトを4.5から4.5.2(ライブラリと同じ)に更新することで解決しました。

于 2016-12-22T21:36:39.950 に答える
26
  1. [ソリューションエクスプローラー]タブで右クリックし、[プロパティ]を選択します

  2. プロジェクトアプリケーションの設定でターゲットフレームワークを更新することにより、この問題を解決します。

たとえば、私の場合、プロジェクトは.net Frameworkバージョン4.5.1でコンパイルされていましたが、参照されたdllはバージョン4.6.1でコンパイルされました。だから私のプロジェクトのバージョンを更新しました。私はそれがあなたのために働くことを願っています。

ここに画像の説明を入力してください

于 2016-11-28T07:16:20.907 に答える
20

これが問題です:

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

DLLへの参照を追加していません。次のようなものが必要です。

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

(実際、この特定のケースでは出力ファイルを指定する必要はありませんが、それでもより明確です...)

于 2012-08-07T21:22:35.550 に答える
9

編集:ああ、私を無視してください、あなたはVisualStudioを使用していません。

プロジェクトへの参照を追加しましたか?

この種のもののように:

ここに画像の説明を入力してください

于 2012-08-07T21:21:16.910 に答える
3

.NETFrameworkの「クライアントプロファイル」が原因である可能性があります。.NETの「フルバージョン」を使用してみてください。

于 2013-03-01T06:30:26.847 に答える
2

これは通常、usingステートメントがあるが、名前空間を定義するアセンブリを参照するのを忘れたときに発生します。

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

cscコンパイラの例を参照してください

于 2012-08-07T21:21:39.637 に答える
2

ほとんどの問題は.NETFrameworkによって引き起こされます。したがって、プロジェクトのプロパティに移動し、参照dllと同じ.Netバージョンを変更します。

終わり!!!

お役に立てば幸いです:)

于 2018-04-26T06:41:15.680 に答える
1

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

「コンテンツ」->「コンパイル」に変更すると、エラーは消えました。

于 2014-07-14T16:37:29.713 に答える
1

プロジェクトが依存するプロジェクト/ライブラリと同じ.NetFrameworkバージョンを共有していることを確認することで、これを解決しました。

ライブラリ(ソリューション内のプロジェクト)は.Net 4.6.1を使用しており、私のプロジェクトは4.5.2を使用していたことが判明しました。

于 2018-05-15T10:41:47.387 に答える
1

私も同じ問題に直面しました、

理由:このエラーに直面した理由は、新しい部分ビューを作成するのではなく、クラスを作成し、その拡張子の名前を「.cs」から「.cshtml」に変更したためです。

解決策:名前を変更したビューを削除して、適切な部分ビューまたは完全ビューを再作成するだけです。その後は正常に動作します。

于 2019-11-06T12:42:43.300 に答える
1

Web.Configを確認し、namespace=を見つけます。削除するか、必要に応じて新しく作成する必要があります

于 2020-10-03T12:49:41.073 に答える
0

使用したcsファイルがプロジェクトフォルダー内にあるときに同じエラーが発生しましたが、親プロジェクトの.csprojから参照されていませんでした。Intellisenceはプロジェクトフォルダー内のこのファイルを参照しますが、.csprojに参照がないため、コンパイラーはこのファイルを認識しません。

于 2016-02-09T15:14:51.647 に答える
0

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

于 2016-03-16T06:22:07.480 に答える
0

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

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

于 2018-01-19T13:54:17.823 に答える
0

Gitからプロジェクトのクローンを作成し、最初にソリューションを直接ビルドしたときにも同じ問題が発生しました。その代わりに、ファイルエクスプローラーのローカルリポジトリに移動し、ソリューションファイル(.sln)をダブルクリックして問題を解決しました。

于 2019-04-29T07:53:42.117 に答える
0

最初に新しいソリューションをプルして開始した後、同様の問題が発生しました。最初にプロジェクトをクリーンアップすることで、VisualStudioで修正されました。次に、パッケージを復元します。再構築したとき、タイプまたは名前空間のエラーはもうありませんでした。

于 2019-05-28T13:25:47.780 に答える
0

理論的には、クライアントフレームワークがライブラリフレームワークよりも高い場合、クライアントプロジェクトは正常にビルドされます。したがって、プラットフォームターゲットをチェックして、競合がないことを確認することをお勧めします。

マウスの右ボタンプロジェクト>プロパティ>ビルドして、コンソールプロジェクトでのみ使用可能な32ビットを優先するのチェックを外します。そして、両方のプロジェクトが同じプラットフォームをターゲットにしていることを確認してください。[[32ビット1を優先]のチェックを外します

于 2021-09-19T20:52:53.820 に答える