0

我有一个包含网站的解决方案,其中包含大量文件。

最近发生了必须将一个新网页添加到该站点的情况。使用新文件构建解决方案时,一切正常。尝试使用 Web 发布向导时,该过程会中断。

基本上,这就是发生的事情:

  • 添加到 webproject 的新页面(例如 myPage)
  • 在visual studio本地构建,一切正常。最终装配具有代码库中包含的所有类。
  • 将网站发布到文件系统(右键单击并从 CSProject 发布),预编译会引发错误,提示缺少“myPage”类。

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

  • \bin -> 编译代码完整,包括“MyPage”类
  • \obj\Debug\Package\PackageTmp\bin -> 编译代码不完整,缺少新类,包括“MyPage”类
  • \obj\Debug\AspnetCompileMerge\Source\bin -> 编译代码不完整,缺少新类,包括“MyPage”类
4

1 回答 1

0

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

MySolution
    Project A
    Project B
    Project C
    ...

项目 A 引用项目 B,该项目 B 引用项目 A的程序集输出

在本地构建时,一切正常,因为从 A 生成的程序集是 ProjectA.dll 并重新生成。看起来当从 Visual Studio(Web 发布,而不是 TFS 构建和发布功能)中使用“发布”时,它会与引用混淆,并且生成的 Dll 缺少某些部分。

这个缺陷是因为引用的循环程序集不是最新的,而是过时的。

于 2016-07-01T09:22:54.567 回答