错误:types在两个目录中都存在
在一个MVC2项目中,我将一个文件从App_code移动到Content文件夹并编译。 然后再将其移回App_Code,然后将其构build操作更改为“编译”。 现在我得到这个错误,我不知道如何解决这个问题,使我的程序再次工作:
CS0433:“c:\ Users … \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ root \ b00d4b7d \ b2553f9c \ App_Code.zowyklar.dll”和“c:\ Users”中都存在“Helper” .. \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ root \ b00d4b7d \ b2553f9c \ assembly \ dl3 \ 5c6d3537 \ 19f85663_cde9cb01 \ MyProject.DLL'
清洁和重build不能解决问题。
尝试清理您的解决scheme,然后尝试重build。 在创build新的dll后,Visual Studio可能仍然会引用旧的dll。
这已经在一个单独的问题中得到解答,并为我解决了这个问题。 一定要把原来的人的答案投票。
ASP.Net错误:“types'foo'存在于”temp1.dll“和”temp2.dll“
将batch =“false”属性添加到web.config文件的“编译”元素中。
出现此问题是因为ASP.NET 2.0使用应用程序引用和应用程序的文件夹结构编译应用程序的方式。 如果应用程序的web.config文件中元素的批处理属性设置为true,则ASP.NET 2.0会将应用程序中的每个文件夹编译为一个单独的程序集。
http://www.sellsbrothers.com/news/showTopic.aspx?ixTopic=1995
假设你正在构build一个Web应用程序,它出现给你的MVC2点,你不应该使用App_Code文件夹。 它不是为了与Web应用程序项目集成而devise的。
在Visual Studio中编译时,应用程序中的所有代码(包括App_Code中 )都会被编译到程序集中。 当你运行你的应用程序时,asp.net知道一个名为App_Code的“特殊”文件夹,并将它的内容编译成具有唯一名称的程序集。 因此,任何时候你运行这个项目都会遇到这个问题。
解决scheme:
重命名你的App_Code文件夹,如“代码”或“全球”(和更新你现在打破的引用)&瞧,问题解决了。
简单的解决scheme为我工作100%
把这个类放到App_Code文件夹的外面
http://vishaljoshi.blogspot.in/2009/07/appcode-folder-doesnt-work-with-web.html
我的问题是与不同版本的DevExpress。
从bin和obj文件夹删除所有内容使我的网站再次运行…
参考: https : //www.devexpress.com/Support/Center/Question/Details/KA18674
我有同样的错误:typesMyCustomDerivedFactory存在于我的WCF服务项目的App_Code文件夹中的我的ServiceHost和ServiceHostFactory派生类。 添加
<configuration> <system.web> <compilation batch="false" /> </system.web> <configuration>
没有解决错误,但移动我的ServiceHost和ServiceHostFactory派生类在一个单独的类库项目做到了。
试试这个!
通常,当这发生在本地,我清理所有的aspnet临时文件夹。 但是最近当我在Azure上发布我的网站时,它正在发展。 所以“清洁临时aspnet文件夹”不是一个解决scheme。
在互联网上search后,我创build了这个:
从Azure网站清除Temp ASP.NET文件
这个对我有用!
在Web应用程序(而不是Web站点)中,我将App_Code * .cs Build Action(文件属性)从Compile更改为Content 。 那么问题就解决了。
在解决scheme/项目中可能有两个同名的“Helper”类。 更改其中一个名称,然后重build
我在其中一个项目中遇到同样的问题。 发现问题从我处理母版页开始。
如果两个页面“inheritance”相同的页面,也会发生问题。
我在“LoginMaster.Master”和“MasterPage.Master”顶部有以下代码行
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MainMaster.master.cs" Inherits="Master_Pages_Header" %>
我改变了我的“LoginMaster.Master的inheritance:
<%@ 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
如果您正在将ASP.NET 2.0网站迁移到.NET Web APP 4.5,那么您也可能遇到这个问题。 并把批=假,添加一个名称空间等…不能工作。
解决方法是将旧的App_Code文件夹(或任何有问题的文件夹)重命名为Old_App_Code(如自动进程那样)或任何其他名称。
就我而言,我必须在我的项目中具有相同名称但扩展名不同的项目。 一个是由Crystal Report制作的accountRep.aspx和另一个accountRep.rpt。 当我将accountRep.rpt更改为accountReport.rpt时,问题得以解决
为我工作的另一个潜在的解决scheme是改变所有的参考
CodeFile="~/..."
至
CodeBehind="~/..."
在所有.master和.aspx页面
使用解决scheme文件将旧网站转换为适当的Web应用程序时发生这种情况。
我没有在其他地方find这个信息,所以希望这可以帮助别人。
App_Code文件夹不适用于MVC项目(WAP)。
App_Code文件夹中的文件会自动编译为特殊dll的一部分。 如果该文件上的生成操作属性设置为编译,相同的类也将被编译为主DLL的一部分,你将最终有两个副本。
将“构build操作”属性设置为“无”可确保项目中只有一个类的副本。 编译器在构build时不会捕获App_Code文件夹中的任何错误,但是Intellisense仍然会validation代码,但是编译时错误只有在编译时才会显示出来。
推荐的解决scheme是将代码放在一个普通的文件夹中,并确保生成操作被设置为编译。
我通过在Visual Studio中Delete all existing files prior to publish
检查Delete all existing files prior to publish
解决此问题: