Visual Studio发布时,DLL中缺少一些类

本文关键字:DLL Studio 布时 Visual | 更新日期: 2023-09-27 17:53:22

我有一个解决方案,包含一个网站,有很多文件。

最近发生了一个新的网页必须添加到网站。使用新文件构建解决方案时,一切都可以正常工作。当尝试使用Web发布向导时,进程中断。

基本上是这样的:

  • 新页面(例如myPage)添加到webproject
  • 在visual studio本地构建,一切正常。最终程序集包含代码库中包含的所有类。
  • 将网站发布到文件系统(右键单击从CSProject发布),预编译抛出错误,说类"myPage"丢失。

我已经检查了Dll版本(例如myWebSite.dll)在三个通常的位置:

  • 'bin ->编译的代码是完整的,包括"MyPage"类
  • 'obj'Debug'Package'PackageTmp'bin ->编译的代码不完整,缺少新类,包括"MyPage"类
  • 'obj'Debug'AspnetCompileMerge'Source'bin ->编译后的代码不完整,缺少新类,包括"MyPage"类

Visual Studio发布时,DLL中缺少一些类

解决方案是这样设计的,使用循环引用:

MySolution
    Project A
    Project B
    Project C
    ...

项目A引用项目B,项目B引用项目A的汇编输出

在本地构建时,一切都工作了,因为从A生成的程序集是ProjectA.dll并且是重新生成的。当在visual studio中使用"发布"(Web发布,而不是TFS构建和发布功能)时,它会与引用混淆,导致Dll缺少某些部分。

此缺陷是由于引用的循环程序集不是最新的,而是过时的。