我们有一个15年的项目,要从Visual Studio 2010迁移到Visual Studio2017。该项目在VS 2010中可以正常编译,但是当我们尝试将其迁移到VS 2017时,出现了很多错误。
基本上,我们有一个名为Security的业务层:
<Serializable()> Public MustInherit Class Security
Public Function GetPermission() As Boolean
End Function
End Class
然后我们有一个Domainlayer,其中包含一堆使用安全性的类:
<Serializable()> Public NotInheritable Class DomainClass
Inherits BLL.Security
Shadows Function GetPermission() As Boolean
End Function
End Class
最后,我们有了一个使用DomainClass函数的Asp.Net项目:
Public Class PresentationLayerClass
Private m_Domain As Domains.DomainClass
m_Domain = new Domain.DomainClass()
m_Domain.GetPermission()
End Class
很明显,Asp.net项目引用了Domain,而Domain引用了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.
我们该如何解决?我们要避免在Asp.net层中添加对Businesslayer的引用。为什么在VS 2017中有什么不同?
[编辑:]我尝试过的事情:
答案 0 :(得分:0)
我认为我在此线程中找到了问题的答案:
Why does VS 2015 need a reference to System.Data.Entity but VS 2013 does not?
似乎与VS 2015中的新编译器如何处理传递引用有关。所以我只需要添加它要求的参考即可。