Я еще не выяснил, почему это происходит, но у меня были классы, которые были в моей App_Codeпапке, которые вызывали методы друг у друга, и у меня все получалось, когда я создавал проект .NET 4.5.2, но потом мне пришлось верните его на 4.0, поскольку целевой сервер не обновлялся. Вот когда я обнаружил эту проблему (после исправленияlangversion в моем web.config от 6 до 5 ... другая история) ....
Один из моих методов продолжал иметь ошибку как:
The type X.Y conflicts with the imported type X.Y in MyProject.DLL
Все мои классы уже были настроены на «Compile» в своих свойствах, как указано в принятом здесь ответе, и у каждого было общее пространство имен, которое было одинаковым, и каждый имел using MyNamespace;в верхней части каждого класса.
Я обнаружил, что если я просто переместил классы-нарушители, которые должны вызывать методы друг в друге, в стандартную папку с именем, отличным от «App_Code», у них перестал возникать этот конфликт.
Примечание . Если вы создадите стандартную папку с именем «AppCode», переместите в нее ваши классы, удалите папку «App_Code», а затем переименуйте «AppCode» в «App_Code», ваши проблемы вернутся. Неважно, используете ли вы опцию «Новая папка» или «Добавить папку ASP .NET» для создания «App_Code» - кажется, что вы вводите имя.
Может быть, это просто проблема .NET 4.0 (и, возможно, раньше) ... Я был в порядке в 4.5.2, прежде чем вернуться!