Я мигрировал мой проект ASP.NET от 3.5 до 4.0 (VS2008 на VS2010), и когда я пытался публикацией сайта я столкнулся с этой ошибкой:Неверное наследование ASP.NET доступно для публикации в .NET 3.5, но не в 4.0?
The type 'TYPE' exists in both 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files...\App_Web_1z57x8dg.dll' and 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files...\App_Web_ofaxwney.dll'
Однако, когда я вернулся к моему .NET 3.5/VS2008 проект был доступен для публикации без проблем. Я нашел несколько вопросов SO с подобными проблемами, в частности this был очень информативным. Я сделал опцию batch="false"
, но по-прежнему столкнулся с этой проблемой.
Должна быть проблема с круговой ссылкой. Возвращаясь к проекту .NET 4.0 Я начал смотреть намного более близко на ошибки и нашел много вещей, как это:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ViewPresentationTabControl.ascx.cs" Inherits="Common_UserControls_PresentationTabControl" %>
Если присмотреться, то Inherits
тег указывает на неправильное управление. Это стало жертвой кода копирования и вставки (любезно предоставлено оффшорным подрядчиком, унаследованным от этого проекта).
Я прошел через все ошибки и исправил очевидную ошибку, и проект был доступен для публикации в .NET 4.0/VS2010.
Цель этого длинностраничного сообщения заключается в том, почему 3.5 разрешить это, а не 4.0? Кажется, что-то подобное может вызвать серьезную проблему в любой версии, но, очевидно, этого не произошло.
Любая информация была бы принята с благодарностью.
Спасибо за ввод, однако я исправил проблему, посмотрев все местоположения где тег «Inherit» указывал на другой файл. Здесь возникает вопрос, почему .NET 3.5 разрешил его опубликовать, а не 4.0. Был ли мой вопрос недостаточно ясным? Пожалуйста, дайте мне знать, чтобы я мог исправить это, чтобы избежать путаницы. –
oops. не читал до конца :) Differnce in build approach 4.0 по какой-то причине строит весь контент сайта в одной большой сборке application.dll, поэтому во время сборки всплывают неправильные наследования. ранее сборка выполнялась на каждой странице, и одна страница была скомпилирована в одну сборку. Чтобы этого избежать, я обычно создаю пакеты .msi для установки веб-сайта, которые принудительно завершают сборку полного веб-сайта перед упаковкой, и все эти ошибки всплывали во время сборки. – b0rg
Интересно. Спасибо за ваш отзыв! Вы должны добавить эту информацию в свой ответ, чтобы я мог принять ее как официальный ответ. –