在MVC2项目中,我将文件从App_code移动到Content文件夹并进行编译。然后再将其移回App_Code,然后将其Build Action更改为“Compile”。现在我收到此错误,我不知道如何修复此问题以使我的程序再次运行:
CS0433:“Helper”类型存在于 都 “C:\用户\应用程序数据\本地的\ Temp \临时 ASP.NET 文件\ ROOT \ b00d4b7d \ b2553f9c \ App_Code.zowyklar.dll” 和 “C:\用户\应用程序数据\本地的\ Temp \临时 ASP.NET 文件\根\ b00d4b7d \ b2553f9c \组件\ DL3 \ 5c6d3537 \ 19f85663_cde9cb01 \ MyProject.DLL'
清洁和重建并不能解决问题。
答案 0 :(得分:34)
这已在另一个问题中得到解答,并为我解决了问题。一定要对原始人的答案进行投票。
ASP.Net error: "The type 'foo' exists in both "temp1.dll" and "temp2.dll"
将batch =“false”属性添加到web.config文件的“compilation”元素中。
出现此问题的原因是ASP.NET 2.0使用应用程序引用和应用程序的文件夹结构来编译应用程序的方式。如果应用程序的web.config文件中元素的批处理属性设置为true,则ASP.NET 2.0会将应用程序中的每个文件夹编译为单独的程序集。
http://www.sellsbrothers.com/news/showTopic.aspx?ixTopic=1995
答案 1 :(得分:20)
假设你正在构建一个Web应用程序,看起来你得到了MVC2点,你就不应该使用App_Code文件夹。它不是为与Web应用程序项目集成而设计的。
在Visual Studio中编译时,应用程序中的所有代码 (包括在 App_Code 中)被编译成程序集。当你跑步 你的应用程序,asp.net知道"特殊"文件夹叫 App_Code 并将其内容编译为具有唯一的程序集 名称。因此,无论何时运行项目,您都会遇到此问题。
解决方案:
将 App_Code 文件夹重命名为" Code"或者"全球" (并更新你现在已经破坏的参考资料)&瞧,问题解决了。
答案 2 :(得分:9)
简单解决方案100%为我工作
将课程放在App_Code文件夹
之外http://vishaljoshi.blogspot.in/2009/07/appcode-folder-doesnt-work-with-web.html
答案 3 :(得分:9)
我的问题是使用不同版本的DevExpress。
删除 bin 和 obj 文件夹中的所有内容后,我的网站再次运行...
参考: https://www.devexpress.com/Support/Center/Question/Details/KA18674
答案 4 :(得分:8)
尝试清理解决方案,然后尝试重建。 Visual Studio在创建新dll之后可能仍然引用了旧的dll。
答案 5 :(得分:6)
我有同样的错误: 类型'MyCustomDerivedFactory'存在于和 我的ServiceHost和ServiceHostFactory派生类在我的WCF服务项目的App_Code文件夹中。添加
<configuration>
<system.web>
<compilation batch="false" />
</system.web>
<configuration>
没有解决错误,但在单独的类库项目中移动我的ServiceHost和ServiceHostFactory派生类就做到了。
答案 6 :(得分:5)
尝试这一个!
通常,当这发生在本地时,我清理所有的aspnet临时文件夹。但最近,当我在Azure上发布我的网站时,它一直在讨厌。所以&#34;清洁临时aspnet文件夹&#34;不是解决方案。
在互联网上搜索后,我成立了这个:
Clear Temp ASP.NET files from Azure Web Site
对我有用!
答案 7 :(得分:1)
如果您正在将ASP.NET 2.0网站迁移到.NET Web APP 4.5,那么您也可以遇到这个问题。并将batch = false,添加命名空间等...无法正常工作。
解决方法是将旧的App_Code文件夹(或任何有问题的文件夹)重命名为Old_App_Code(就像自动进程一样)或任何其他名称。
答案 8 :(得分:1)
我的一个项目遇到了同样的问题。结果从我处理母版页开始问题。
如果两个页面“继承”同一页面,也会出现问题。
我的“LoginMaster.Master”顶部有以下代码行&amp; “MasterPage.Master”
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MainMaster.master.cs" Inherits="Master_Pages_Header" %>
我将“LoginMaster.Master”上的Inherits更改为:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="LoginMaster.master.cs" Inherits="Master_Pages_LoginMaster" %>
我立即能够在没有任何问题的情况下发布我的项目。希望这适用于其他人。我为没有使用正确的条款而道歉。
您还需要更改.cs中的类以匹配Inherits名称。如果不这样做会导致错误。
IE:
public partial class Master_Pages_LoginMaster : System.Web.UI.MasterPage
答案 9 :(得分:1)
您的解决方案/项目中可能有两个同名“Helper”的类。更改其中一个的名称,然后重建
答案 10 :(得分:0)
在Web应用程序(非网站)中,我将App_Code * .cs Build Action(文件属性)从编译更改为内容。然后问题解决了。
答案 11 :(得分:0)
在我的情况下,我必须在项目中使用相同名称但扩展名不同的项目。一个是accountRep.aspx,另一个是由Crystal Report制作的accountRep.rpt。将accountRep.rpt更改为accountReport.rpt
时问题解决了答案 12 :(得分:0)
另一个对我有用的潜在解决方案是改变
的所有引用CodeFile="~/..."
到
CodeBehind="~/..."
所有.master和.aspx页面中的
将旧网站转换为带有解决方案文件的正确Web应用程序时会发生这种情况。
我在其他任何地方都没有找到这些信息,所以希望这可以帮助别人。
答案 13 :(得分:0)
App_Code文件夹不打算与MVC项目(WAP)一起使用。
App_Code文件夹中的文件会作为特殊dll的一部分自动编译。如果文件上的Build Action属性设置为Compile,则同一个类也将作为主dll的一部分进行编译,最终将得到两个副本。
将Build Action属性设置为None可确保项目中只有该类的一个副本。构建时,编译器不会捕获App_Code文件夹中的任何错误,但Intellisense仍将验证代码,但编译时错误不会显示,直到它即时编译。
建议的解决方案是将代码放在普通文件夹中,并确保将Build Action设置为Compile。
答案 14 :(得分:0)
答案 15 :(得分:0)
在我的情况下,当我错误地将一个类命名为与其继承的类相同的类时,会出现此错误。
答案 16 :(得分:0)
我几乎尝试了此页面上的所有建议,但是不得不从我的机器上完全删除Visual Studio 2017。我重新安装了最新版本(2019),并且神奇地工作了。我希望这对以后的人有所帮助。
答案 17 :(得分:0)
我通过删除导致此冲突的dll文件中引用的不必要的NuGet打包之一来解决此问题。
因此,在这种情况下,我同时安装了ZXing.Net和ZXing.Net.Mobile。由于我是在Xamarin Forms中创建移动应用程序的,因此删除ZXing.Net NuGet软件包可以解决此问题。
请务必检查并确保没有针对不同框架(即ASP.Net与Xamarin)的多余NuGet软件包。
答案 18 :(得分:0)
尝试更改文件夹名称
APP_CODE
CODE
。这解决了我的问题。
或者,您可以将所有代码文件移至另一个文件夹。