Visual Studio 发布时 DLL 中缺少一些 class
Visual Studio When publish some class is missing from DLL
我有一个包含网站和大量文件的解决方案。
最近刚好网站要加新网页。使用新文件构建解决方案时,一切正常。
尝试使用 Web 发布向导时,进程中断。
基本上是这样的:
- 新页面(例如 myPage)添加到 web 项目中
- 在visual studio本地构建,一切正常。最终汇编包含代码库中的所有 classes。
- 将网站发布到文件系统(右键单击并从 CSProject 发布),预编译会抛出错误,指出缺少 class "myPage"。
我检查了三个常用位置的 Dll 版本(例如 myWebSite.dll):
- \bin ->编译代码完成,包括"MyPage"class
- \obj\Debug\Package\PackageTmp\bin -> 编译代码不完整,缺少新的 classes,包括 "MyPage" class
- \obj\Debug\AspnetCompileMerge\Source\bin -> 编译代码不完整,缺少新的 classes,包括 "MyPage" class
解决方案是这样设计的,带有循环引用:
MySolution
Project A
Project B
Project C
...
项目 A 引用项目 B,项目 B 引用 项目 A 的程序集输出。
在本地构建时,一切正常,因为从 A 生成的程序集是 ProjectA.dll 并且已重新生成。看起来当在 visual studio(Web 发布,而不是 TFS 构建和发布功能)中使用 "publish" 时,它会混淆引用,并且生成的 Dll 缺少某些部分。
这个缺陷是因为引用的圆形组件不是最新的,而是过时的。
我有一个包含网站和大量文件的解决方案。
最近刚好网站要加新网页。使用新文件构建解决方案时,一切正常。 尝试使用 Web 发布向导时,进程中断。
基本上是这样的:
- 新页面(例如 myPage)添加到 web 项目中
- 在visual studio本地构建,一切正常。最终汇编包含代码库中的所有 classes。
- 将网站发布到文件系统(右键单击并从 CSProject 发布),预编译会抛出错误,指出缺少 class "myPage"。
我检查了三个常用位置的 Dll 版本(例如 myWebSite.dll):
- \bin ->编译代码完成,包括"MyPage"class
- \obj\Debug\Package\PackageTmp\bin -> 编译代码不完整,缺少新的 classes,包括 "MyPage" class
- \obj\Debug\AspnetCompileMerge\Source\bin -> 编译代码不完整,缺少新的 classes,包括 "MyPage" class
解决方案是这样设计的,带有循环引用:
MySolution
Project A
Project B
Project C
...
项目 A 引用项目 B,项目 B 引用 项目 A 的程序集输出。
在本地构建时,一切正常,因为从 A 生成的程序集是 ProjectA.dll 并且已重新生成。看起来当在 visual studio(Web 发布,而不是 TFS 构建和发布功能)中使用 "publish" 时,它会混淆引用,并且生成的 Dll 缺少某些部分。
这个缺陷是因为引用的圆形组件不是最新的,而是过时的。