gpt4 book ai didi

c# - 错误 CS0433 "Type ' X' already exists in both A.dll and B.dll "来自哪里?

转载 作者:IT王子 更新时间:2023-10-29 03:40:25 25 4
gpt4 key购买 nike

当我使用内部 Web 服务器(不是 IIS)从 Visual Studio 2008 SP1 运行 Web 应用程序时,我收到上述错误。

完整错误(源文件 Default.aspx.cs):

Compiler Error Message: CS0433: The type 'WebApplication3.Site1' exists in both 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\aa563bcf\59deedc0\App_Web_site1.master.cdcab7d2.muczzy9v.dll' and 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\aa563bcf\59deedc0\assembly\dl3\44c3a3cf\80dd34ed_6968ca01\WebApplication3.DLL'

前面的完整警告:

Warning: CS0436: The type 'WebApplication3._Default' in 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\aa563bcf\59deedc0\App_Web_default.aspx.cdcab7d2._tlkwdos.0.cs' conflicts with the imported type 'WebApplication3._Default' in 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\aa563bcf\59deedc0\assembly\dl3\44c3a3cf\e096e61c_6568ca01\WebApplication3.DLL'. Using the type defined in 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\aa563bcf\59deedc0\App_Web_default.aspx.cdcab7d2._tlkwdos.0.cs'.

警告源指向一个中间文件App_Web_default.aspx.cdcab7d2._tlkwdos.0.cs:

Line 162:    
Line 163: [System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
Line 164: public class default_aspx : global::WebApplication3._Default, System.Web.IHttpHandler {
Line 165:
Line 166: private static bool @__initialized;

我的问题是:这是从哪里来的?

Web 应用程序(不是网站!)有一个 Default.aspx 和一个 Site1.Master,没有依赖项。它们几乎是空的,页面上有一个 asp:Label。以前,这个 webapp 运行良好。当我删除 Default.aspx.cs 中对 master 的任何引用时,一切顺利。大师只有一些代码。

它实际上是许多小型的即发即弃测试网络应用程序之一,所以我一点也不在乎。但是我以前没见过这个,现在我很好奇除了将代码复制到一个新项目中之外该怎么做(清理解决方案没有帮助)。

注意:我读过this post和其他一些,它们不适用。

最佳答案

理论

当此问题不是由应用程序中的错误(例如,重复的类名)引起时:

在对应用程序的项目进行更改导致新构建(例如,代码/引用/资源更改)后,似乎会出现此问题。问题似乎出在这个新版本的输出中:由于各种原因,Visual Studio 没有替换应用程序的 obj/bin 文件夹的全部内容。这至少会导致应用程序的 bin 文件夹中的某些内容过时。

出现上述问题时,单独清除“Temporary ASP.NET Files”文件夹并不能解决问题。它不能解决问题,因为在下次访问您的应用程序时,您的应用程序的 bin 文件夹中的陈旧内容将被复制回“Temporary ASP.NET Files”文件夹,导致问题仍然存在。关键是删除所有现有文件并强制 Visual Studio 重建每个对象,以便下次访问您的应用程序时,新的 bin 文件将被复制到“Temporary ASP.NET Files”文件夹中。

解决方案

  1. 关闭 Visual Studio
  2. 执行 iisreset
  3. 删除“Temporary ASP.NET Files”文件夹中的所有文件夹和文件(路径在错误消息中引用)
  4. 删除有问题的应用程序的“obj”和“bin”文件夹
  5. 重新启动 Visual Studio 并打开解决方案
  6. 执行“清理解决方案”,然后执行“重建解决方案”

解释

  • 第 1-2 步:从我们需要删除的文件夹/文件中移除资源锁。
  • 第 3-4 步:删除所有旧的构建文件
  • 第 5-6 步:创建构建文件的新版本

关于c# - 错误 CS0433 "Type ' X' already exists in both A.dll and B.dll "来自哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1757289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com