【问题标题】:Web Site in solution where "Rebuild Solution" compile succeeds cannot launch debugger“重建解决方案”编译成功的解决方案中的网站无法启动调试器
【发布时间】:2011-01-27 00:05:18
【问题描述】:

我有一个包含网站的解决方案(使用网站模板而不是网络应用项目模板创建 - 顺便说一句,转换不是一种选择)。

当我全部重建时,编译成功,但奇怪地显示3个错误,所有这些都是“无法获取项目引用'PROJNAME'的依赖项”。当我尝试启动调试器时,我得到“有构建错误”。对话。

两个问题:

  1. 如果我在调试错误对话框中选择“是”选项来运行最后一次成功的构建,它会在我的 Rebuild All 刚刚编译的代码上运行吗?
  2. 如何解决此问题?

我查看了这篇文章,对我的前景感到沮丧。但是,奇怪的是,我将这些相同的项目添加到了一个单独的网站解决方案中,该解决方案可以很好地编译/调试,删除了测试网站并重新添加了我想要调试的目标网站,但它以同样的方式失败了. .NET 网站是否有秘密网站 .proj 文件?

Could not get dependencies for project reference

【问题讨论】:

  • 嗯,#1 的答案是它将运行之前的编译。所以,这至少意味着我可以调试更改...

标签: visual-studio-2008 debugging reference


【解决方案1】:

我在这个问题上浪费了一整天。简要总结一下,我正在使用 VS 2008 开发一个遗留的“网站”项目,但发布失败。我查看了错误列表,看到了可怕的“无法获得依赖项”错误。我查看了这篇文章以及与 Stackoverflow 和其他地方的错误相关的其他帖子,并尝试了我发现的所有建议。当我重新安装 Visual Studio 2008、重新启动并看到错误再次出现时,这种疯狂达到了顶峰。好时光!

第二天我意识到发布错误实际上是由目录权限引起的。构建错误与它无关。以下是我从地狱中学到的东西:

  1. 这是 Visual Studio 2008 网站项目中的一个错误,不时报告但显然未修复(截至 1/2011)。当 2 个或多个程序集项目具有依赖关系时,就会发生这种情况,一个到另一个,然后将两者都作为项目引用添加到网站。
  2. 除了这是一个错误之外,将问题归类为错误是不正确的。在我看来,这是一个警告级别的问题。最好的证据是它似乎不会影响构建,我能够在不修复它的情况下成功部署。
  3. 我坚信应该追踪、理解和消除所有错误和编译器警告。这是证明规则的例外。如果您能找到解决方法,请务必使用它并忘记错误消息!
  4. 最后但并非最不重要的一点是,这是"Web Site" project type in Visual Studio should be avoided at all cost 的另一个原因。

【讨论】:

    【解决方案2】:

    您是否正在使用一些非托管的、特定于平台的代码?当我在 x64 机器上开发并且我的代码依赖于 x86 库时,我经常遇到这种错误。我知道在 x64 机器上根据 x86 代码运行网站的唯一方法是使用 IIS 并禁用应用程序池上的 x64 支持,这将强制使用 .NET x86 环境,并且您的依赖项将运行良好。

    即使这不是你的情况,尝试在你的机器上安装 IIS 并附加到他的进程,而不是使用内置的 Web 服务器。这应该可以消除大部分调试问题。

    【讨论】:

    • 这正是问题所在。我尝试运行 IIS,然后将调试器附加到进程,但它仍然只显示默认站点。我必须在 IIS 本身中配置什么才能让调试站点接管本地 Web 请求?
    • 您必须将您的应用程序添加到 IIS:technet.microsoft.com/en-us/library/cc772042(WS.10).aspx 然后将您的 Visual Studio 项目配置为不使用内部 Web 服务器(Web 项目属性、启动选项、使用自定义服务器),并且使用您的 IIS 应用程序(例如,使用 localhost/myapp 填写基本 URL)。它还有助于标记“不要打开页面。等待来自外部应用程序的请求”。
    【解决方案3】:

    重建操作“成功”并同时显示错误听起来像是一个真正的问题。这些应该是相互排斥的结果。

    解决问题的简短答案是您需要解决错误。根据调试器 UI,构建实际上并未成功(无论报告的内容如何)。您必须解决此问题才能调试新代码。

    你能详细说明一下这个场景吗?

    • 您的解决方案中是否有多个项目?
    • 他们都成功建造了吗?
    • 对于错误,他们指的是什么项目,您能否在此处向我们提供任何其他信息。

    【讨论】:

    • 解决方案中有7个项目和一个网站(这是一个网站,不是Web应用程序项目)。无论是我单独构建它们还是作为解决方案的一部分,它们都成功构建。错误列表中引用的项目是网站。唯一可能有用的另一件事是我有一个 32 位和一个 64 位版本的 3rd 方 dll,其中 2 个项目和网站引用了该 dll。我尝试将它们转换为 64 位版本,但在调试网站时遇到问题后又恢复为 32 位。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    相关资源
    最近更新 更多