为什么.net框架与自己生成的文件冲突

时间:2011-08-04 11:18:57

标签: c# .net asp.net .net-4.0

我多次面对错误,我需要一些指导才能永远解决它:

  
    

编译错误

Description: An error occurred during the compilation of a
         

为此请求提供服务所需的资源。请查看以下内容     具体的错误详细信息并适当修改您的源代码。

  
Compiler Error Message: CS0433: The type
     

'ASP.controls_sites_linkbox_ascx'存在于两者中   'd:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET   Files \ marja \ 8d9a6443 \ 9cb45dad \ App_Web_1hpsmwqz.dll'和   'd:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET   文件\玛丽亚莱赫\ 8d9a6443 \ 9cb45dad \ App_Web_4lhnbswq.dll'

当我关闭视觉工作室时,问题将得到解决。但是,当我们在服务器上发布应用程序时,它可能会一次又一次出现,这是不正常的并不危险吗?

2 个答案:

答案 0 :(得分:1)

如果您不想遇到此问题,请尽可能避免使用“网站”项目 - 并支持“Web应用程序”。

实际上,“网站”项目只是一个常规的Web应用程序,只有一个关键区别。而不是为您的应用程序命名.dll(例如Something.Web.dll),程序集的名称是自动生成的(在您的情况下,App_Web_1hpsmwqz.dll)。

现在,你的问题源于这已经发生了几次这样的事实,并且你有一个较旧的自动生成的文件 - 这仍然在你的应用程序的dll搜索路径中。因此,编译器最终会找到两个具有完全相同名称空间的类。它不知道要选哪个。

你可以按照Ankur的建议去做,并删除临时文件。从长远来看,我会考虑将其变成一个合适的Web应用程序。

我做了一个,恰好是一个“网站”。我几次遇到这个问题并解决了我再也不会做的了。回到Web应用程序并(显然)再也没有遇到过这个问题。

答案 1 :(得分:0)

  • 转到“d:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \”
  • 删除所有文件。
  • 然后尝试重建项目。