【发布时间】:2013-07-04 00:23:35
【问题描述】:
我有一个foo.cs 文件
namespace LoL
{
public class testing2
{
}
}
在
Default.aspx.cs文件:
更新:我不知道它是否真的有帮助,但这里是所有Default.aspx.cs 文件:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using LoL;
namespace WebApplication4
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
}
我得到:
编译器错误消息:CS0246:类型或命名空间名称“LoL” 找不到(您是否缺少 using 指令或程序集 参考?)
对于我尝试使用的任何课程。不仅仅是图书馆。我在VS上尝试了几种移动/复制文件的解决方案:Porject > add existing file > foo.cs etc
但其中任何一个都没有运气。
如何解决这个问题?我不知道如何解决这个问题。
注意:如果我尝试在 VS 中使用 F5 模式,它可以工作,但是将网站放在 C:\inetpub\wwwroot\ 上会像在主机中一样给出此错误。
编辑: 通过 ASP.NET 页面上的错误消息,我可以看到 IIS 正在调用 C# 编译器 4.0,但我的目标是 VS 08 上的 .NET framework 3.5(最后一个版本可用VS 08)。这和我的问题有关系吗?
EDIT2:我能够成功地从命令行编译我的网站项目。在项目路径上使用msbuild 程序。当 IIS 尝试编译它时,它只是不起作用。 IIS 不知道foo.cs 文件。
EDIT3:现在我正在使用aspnet_compiler(in cmd.exe) 程序:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler -v webApplication4
在路径上:C:\inetpub\wwwroot\webApplication4
我遇到了同样的错误。所以,我查看了 Visual Studio 配置的东西,它是 .csproj 文件,我正在寻找编译器传递的包含文件(由 VS 生成)。
我在ItemGroup 标签上找到了它们:
<ItemGroup>
<Compile Include="foo.cs" />
<Compile Include="Default.aspx.cs">
如您所见,foo.cs 包含在内以进行编译。所以,文件在那里。为什么aspnet编译器找不到命名空间?
【问题讨论】:
-
您已经说过它可以在本地工作,那么当您部署到 Web 服务器时,您使用的是什么版本的 IIS?您正在为此创建一个新网站吗?您能否尝试提供有关您的部署环境的更多详细信息?谢谢。
-
把网站放到inetpub目录下,是复制源码,还是先发布?由于它在本地工作,因此您编译的代码文件似乎没有进入网络服务器。
-
我说它可以通过在 VS 中使用 F5 模式来工作...我使用的是 IIS 7,VS 将目标 .NET 设置为 3.5。你想要什么细节?我对这些东西了解不多,因为我不是网络开发人员,我是桌面开发人员,正在尝试编辑一些页面。
-
您可能需要更改 IIS 应用程序池以使用 .NET Framework 2.0...3.5 是 2.0 的扩展。 [有时] 尝试在 4.0 中运行 2.0/3.5 站点时会遇到配置问题。
-
@AuriRahimzadeh:我已经试过了。
标签: c# asp.net visual-studio-2008 namespaces