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"类
解决方案是这样设计的,使用循环引用:
MySolution
Project A
Project B
Project C
...
项目A引用项目B,项目B引用项目A的汇编输出。
在本地构建时,一切都工作了,因为从A生成的程序集是ProjectA.dll并且是重新生成的。当在visual studio中使用"发布"(Web发布,而不是TFS构建和发布功能)时,它会与引用混淆,导致Dll缺少某些部分。
此缺陷是由于引用的循环程序集不是最新的,而是过时的。