Откуда возникает ошибка CS0433 «Тип« X »в файлах A.dll и B.dll»? - PullRequest
73 голосов
/ 18 ноября 2009

Когда я запускаю веб-приложение из Visual Studio 2008 SP1 с использованием внутреннего веб-сервера (не IIS), я получаю вышеупомянутую ошибку.

Полная ошибка (исходный файл Default.aspx.cs ):

Сообщение об ошибке компилятора: CS0433: The тип "WebApplication3.Site1" существует в и то и другое «C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Файлы \ корень \ aa563bcf \ 59deedc0 \ App_Web_site1.master.cdcab7d2.muczzy9v.dll» а также «C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Файлы \ корень \ aa563bcf \ 59deedc0 \ сборка \ DL3 \ 44c3a3cf \ 80dd34ed_6968ca01 \ WebApplication3.DLL '

Предыдущее полное предупреждение:

Предупреждение: CS0436: тип «WebApplication3._Default» в «C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Файлы \ корень \ aa563bcf \ 59deedc0 \ App_Web_default.aspx.cdcab7d2._tlkwdos.0.cs' конфликтует с импортированным типом «WebApplication3._Default» в «C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Файлы \ корень \ aa563bcf \ 59deedc0 \ сборка \ DL3 \ 44c3a3cf \ e096e61c_6568ca01 \ WebApplication3.DLL. Используя тип, определенный в «C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Файлы \ корень \ 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;

и мой вопрос: откуда это взялось?

Веб-приложение (не веб-сайт!) Имеет один Default.aspx и один Site1.Master , без зависимостей. Они почти пустые, с asp:Label на странице. Ранее это веб-приложение работало нормально. Когда я удаляю любые ссылки в Default.aspx.cs на мастера, все идет хорошо. Мастер имеет только некоторый код.

На самом деле это один из множества маленьких тестовых веб-приложений, которые меня просто забыли, так что мне было все равно. Но я не видел этого раньше, и теперь мне интересно, что делать, кроме копирования кода в новый проект (решение для очистки не помогает).

Примечание: я прочитал этот пост и некоторые другие, они не применяются.

Ответы [ 24 ]

0 голосов
/ 20 августа 2018

Для этого есть множество причин. И большинство из упомянутых выше применимо к различным сценариям. То, что я заметил, - то, что ошибка происходит ТОЛЬКО, когда аутентификация установлена ​​на что-то другое, кроме «Нет». В целях тестирования я отключу это, и оно будет работать.

0 голосов
/ 27 июня 2014

Я закончил тем, что изменил ссылку на MasterType в разметке страницы.

Я изменил: <%@ MasterType VirtualPath="~/x/y/MyMaster.Master" %> до <%@ MasterType TypeName="FullyQualifiedNamespace.MyMaster" %>

Подробнее см. здесь .

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 13 июня 2019

Меня перенаправили сюда при нажатии на первое попадание Google при нажатии на URL ошибки для CS0433, в частности,

The type 'Package' exists in both 'Windows... Version=N.N.N.N, Culture=neutral, PublicKeyToken=null, ContentType=Windows...' and 'Windows..., Version=255.255.255.255, Culture=neutral, PublicKeyToken=null, ContentType=Windows...'

Вместо того, чтобы изложить все, что я сделал, чтобы исправить это, позвольте мне рассказать вам, что я сделал, что сломало это.Я пошел, чтобы обновить пакеты NuGet для репозитория, который нуждался в обновлении кода.Пакеты были довольно старыми (около 1 года), и все, что я первоначально пытался сделать, это обновить его для проекта C #.

Когда-то между запуском этого процесса и обнаружением этой ошибки я как-то понизил версию C ++.проекты в этом SLN для цели 15063.Я также заметил, что в проекте C # для TargetPlatformMinVersion и TargetPlatformVersion недавно было установлено 10.0.17134.0

. Единственное, что мне нужно было сделать, чтобы "исправить", это изменить TargetPlatformMinVersion на более высокий.версия, чем TargetPlatformMinVersion для проекта C #.Изменение проекта C ++ до любой версии не изменило поведение.Я не уверен, почему это внезапно перестало работать, но, надеюсь, кто-то, кто был заблокирован подобным образом, может выйти из рассола, используя аналогичные стратегии.

0 голосов
/ 16 июля 2014

Да, возникла та же проблема и была решена путем изменения наследования кода c # и тега страницы в aspx

...