将VB.Net项目从VS 2010移动到VS 2017的问题

时间:2018-11-29 12:09:38

标签: asp.net vb.net visual-studio-2010 visual-studio-2017

我们有一个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中有什么不同?

[编辑:]我尝试过的事情:

  • 清洁并重建
  • 更改对DLL而不是项目的引用
  • 在新的解决方案中,与上面的代码相同的错误,因此它并非特定于我们的解决方案。

1 个答案:

答案 0 :(得分:0)

我认为我在此线程中找到了问题的答案:

Why does VS 2015 need a reference to System.Data.Entity but VS 2013 does not?

似乎与VS 2015中的新编译器如何处理传递引用有关。所以我只需要添加它要求的参考即可。