У нас есть 15-летний проект, который мы хотим переместить из Visual Studio 2010 в Visual Studio 2017. Проект прекрасно компилируется в VS 2010, но когда мы попытались переместить его в VS 2017, мы получили кучу ошибок.
По сути, у нас есть Businesslayer с классом Security:
<Serializable()> Public MustInherit Class Security
Public Function GetPermission() As Boolean
End Function
End Class
Затем у нас есть Domainlayer с набором классов, который использует Security:
<Serializable()> Public NotInheritable Class DomainClass
Inherits BLL.Security
Shadows Function GetPermission() As Boolean
End Function
End Class
И, наконец,у нас есть проект Asp.Net, использующий функцию DomainClass:
Public Class PresentationLayerClass
Private m_Domain As Domains.DomainClass
m_Domain = new Domain.DomainClass()
m_Domain.GetPermission()
End Class
Очевидно, что проект Asp.net имеет ссылку на домен, а домен имеет ссылку на Businesslayer.Когда мы компилируем это в VS 2017, мы получаем тысячи ошибок BC30653 на уровне представления:
BC30652 Reference required to assembly 'Business Logic Layer, Version=1.4.0.2, Culture=neutral, PublicKeyToken=null' containing the type 'Security'. Add one to your project.
Как мы решаем это?Мы хотим избежать добавления ссылки на Businesslayer в слой Asp.net.И чем это отличается в VS 2017?
[Edit:] Вещи, которые я пробовал:
- Очистить и восстановить
- Изменение ссылок на DLL вместопроекты
- Я получаю ту же ошибку в новом решении с кодом выше, поэтому он не является специфическим для нашего решения.