我正在使用Snarl C# API向snarl发送通知。
现在,我已将上述网址的内容保存在名为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");
}
}
}
}
现在,当我尝试使用csc test.cs
编译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
。
答案 0 :(得分:21)
我使用的是 .NET Framework 4.5 ,但我的新库有 .NET Framework 4.5.2 ,当我尝试构建时遇到了同样的问题。我通过将项目从 4.5 更新为 4.5.2 (与我的库相同)解决了这个问题。
答案 1 :(得分:14)
这是问题所在:
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
(事实上,在这种特殊情况下,指定输出文件是不必要的,但它仍然更清晰......)
答案 2 :(得分:8)
答案 3 :(得分:7)
编辑:哦,不理我,你没有使用Visual Studio。
您是否添加了对项目的引用?
就像这样的事情:
答案 4 :(得分:3)
可能是由于.NET Framework的“客户端配置文件”。 尝试使用.NET的“完整版”。
答案 5 :(得分:2)
当我有一个using语句但却忘记引用定义命名空间的程序集时,这通常会发生在我身上。
但在您的情况下,由于命名空间是在项目的文件中定义的,因此您忘记告诉编译器有关snarlnetwork.cs文件的信息。
答案 6 :(得分:1)
我在MVC项目中遇到此错误。经过长时间的研究后,我发现包含我在主项目中引用的一些类的.cs文件将Build Actions设置为“Content”......
更改后“内容” - >“编译”错误消失。
答案 7 :(得分:1)
.NET Framework导致的大多数问题。所以只需转到项目属性并更改与您的参考dll相同的.Net版本。
完成!!!
希望它有所帮助:)
答案 8 :(得分:1)
我通过确保我的项目与它所依赖的项目/库共享相同的.Net Framework版本来解决这个问题。
原来,使用.Net 4.6.1的库(解决方案中的项目)和我的项目使用4.5.2
答案 9 :(得分:1)
检查您的Web.Config并找到命名空间=。您可以删除,或者如果需要,则必须创建新的
答案 10 :(得分:0)
当使用cs文件位于项目文件夹中时,我遇到了同样的错误,但没有从父项目的.csproj引用。 Intellisence在项目文件夹中看到此文件,但编译器因为缺少.csproj中的引用而看不到它
答案 11 :(得分:0)
我通过添加对System.Web的引用解决了这个问题。
答案 12 :(得分:0)
由于缺少引用,我也遇到了这个错误。 我没有注意到的原因是因为Resharper提供添加使用和参考。添加使用成功(但它突出显示为灰色),缺少类的语法突出显示(有时),但添加引用无声地失败。
手动添加引用时会弹出一个错误,解释添加引用失败的原因(循环引用)。 Resharper没有将此错误传递给GUI。
答案 13 :(得分:0)
当我从Git克隆项目并第一次直接构建解决方案时,我遇到了同样的问题。而不是去文件浏览器中的本地存储库,然后双击解决方案文件(.sln)解决了我的问题。
答案 14 :(得分:0)
在首先提出并开始新的解决方案后,我遇到了类似的问题。首先清理项目,将其固定在Visual Studio中。然后还原软件包。当我再次构建时,不再有类型或名称空间错误。
答案 15 :(得分:0)
我也遇到了同样的问题,
原因:为什么我会遇到此错误, 而不是创建新的局部视图, 我创建了类,然后将其扩展名从“ .cs”重命名为“ .cshtml”。
解决方案: 只需删除该重命名视图并重新创建适当的部分/完整视图即可。之后它将正常工作。