Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MVC3 Type exists in two different assemblies

I'm getting an error when I run my MVC3 application.

i:\Dev\mvc3Project\Views\Shared\EditorTemplates\SelectListEnum.cshtml(13): error CS0433: The type 'mvc3Project.UI.HtmlExtensions.HtmlAssist' exists in both 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\fcb9f71c\d519c72a\assembly\dl3\b333487e\ed66abf6_51decb01\mvc3Project.DLL' and 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\fcb9f71c\d519c72a\App_Code.tfh8pvp4.dll'

I have tried deleting all the files in Temporary ASP.NET files.

The following two threads haven't helped Thread 1 Thread 2

Here is my web.config. It's actually the default one VS creates for you.

<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=152368
  -->

<configuration>
    <connectionStrings>
        <add name="ApplicationServices"
             connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
             providerName="System.Data.SqlClient" />

    </connectionStrings>

    <appSettings>
        <add key="ClientValidationEnabled" value="true"/>
        <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    </appSettings>

    <system.web>

        <globalization enableClientBasedCulture="true" uiCulture="auto" culture="auto" />

        <compilation debug="true" targetFramework="4.0">
            <assemblies>
                <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
                <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
                <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
                <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
                <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            </assemblies>
        </compilation>

        <!--<trace enabled="true" pageOutput="true" localOnly="true" traceMode="SortByCategory" />-->

        <machineKey decryption="AES" 
                    validation="HMACSHA512" 
                    validationKey="AutoGenerate" 
                    decryptionKey="ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F" />


        <authentication mode="Forms">
            <forms loginUrl="~/Account/LogOn" timeout="2880" />
        </authentication>

        <membership>
            <providers>
                <clear/>
                <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
                     enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
                     maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
                     applicationName="/" />
            </providers>
        </membership>

        <profile>
            <providers>
                <clear/>
                <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
            </providers>
        </profile>

        <roleManager enabled="false">
            <providers>
                <clear/>
                <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
                <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
            </providers>
        </roleManager>

        <pages>
            <namespaces>
                <add namespace="System.Web.Helpers" />
                <add namespace="System.Web.Mvc" />
                <add namespace="System.Web.Mvc.Ajax" />
                <add namespace="System.Web.Mvc.Html" />
                <add namespace="System.Web.Routing" />
                <add namespace="System.Web.WebPages"/>
            </namespaces>
        </pages>
    </system.web>

    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <modules runAllManagedModulesForAllRequests="true"/>
    </system.webServer>

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
                <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

I don't have a copy of System.Web.Mvc in the bin folder either.

Any help would be appreciated.

like image 444
Razor Avatar asked Dec 28 '22 00:12

Razor


2 Answers

If this is not working

Remove all bin folders and obj folders in your solution. And also remove the files in

c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\ path

like image 197
Krishan Avatar answered Jan 06 '23 07:01

Krishan


Your conflict is in a folder named App_Code, which generates it's own DLL. Sounds like you have duplicate code in that folder with something referenced somewhere else. You could either remove that duplicate code and use the referenced assembly, or (if you need the code) rename the folder (like you stated in your comment).

I'd recommend you either remove the code or look to rename the duplicate code as it could cause confusion down the road.

Hope this helps!

like image 28
David Hoerster Avatar answered Jan 06 '23 08:01

David Hoerster