【问题标题】:.NET debugging an existing project.NET 调试现有项目
【发布时间】:2010-09-28 14:48:52
【问题描述】:

背景/免责声明

首先,如果您能理解以下问题,请完全跳过此部分。

我对 .NET 还是很陌生,但是在普通 VB 中使用糟糕的旧 ASP 是老猴子。

我刚进入一家拥有一些遗留 .NET VB 文件的公司,现在我有几个大型项目,文件超过 50mb,整个项目大约 1gb,调试它们并不容易。我已经read through w3schools tutorial 并且做了很多谷歌研究来达到我无法完成这项工作的地步。还有unlike in another very similar question我不认为这是一个简单的问题。

我不知道这些项目是 MVC 还是常规 Web 应用程序,但有人告诉我使用“其他项目类型 > Visual Studio 解决方案 > 空白解决方案”然后“添加现有网站”。没有进一步的说明或指导,我看到它们都有 DLL,让我相信它们不是 MVC。

无论如何,无论我尝试以何种方式或许多其他方式将文件添加到 Visual Studio 中,我都无法通过其中一种方式正确使用调试。一个工作得很好,我至少可以从网络服务器上看到它在本地运行非常相似。但是另一个给了我许多随机错误和警告,以“编译”调试并在 Visual Studio 自己的服务器上运行(我认为它被称为“ASP.NET 开发服务器”)。有些错误甚至不应该存在,例如“文件 XXX 不存在”,而我可以轻松验证它确实存在!

我真的不希望在这里得到太多帮助,但我仍然希望能找到一些帮助。对不起,如果这太多了。

问题

  • 我必须使用哪些选项来调试一个大型 Visual Studio 项目,该项目已经在已关闭调试甚至错误选项的服务器中在线运行?
  • 我如何才能知道如何正确地将现有项目“导入”到 Visual Studio 中?
  • 这是一道作业题吗?
  • (新) 鉴于我有 3 个地方可以同步许多文件(本地、共享生产网络和实时),处理和调试现有错误的最佳方法是什么?开箱即用的思维总是受欢迎的(转换项目,不使用 Visual Studio,旧版本等等)

【问题讨论】:

  • 这不是一个家庭作业问题,除非它是,嗯,家庭作业(如“我的老师给了我一个任务来制作这个应用程序”)。

标签: vb.net debugging


【解决方案1】:

听起来你可能有点过头了。我的第一步是请那里的另一位开发人员帮助你,因为你正在经历真正的学习之旅。

在我继续之前,您正在使用本地副本..而不是服务器副本,对吗?如果他们让您通过网络浏览到服务器,那么您需要立即停止。相反,将所有文件复制到本地目录并使用它。然后去了解出版。直接在服务器外工作总是一件坏事(tm)。它与调试有关,更重要的是,它完全是错误的。通常公司都有某种类型的源代码或版本控制系统。用它。如果它不存在,您可能需要提出它。

添加现有网站功能添加的是网站项目,而不是 Web 应用程序或 MVC 应用程序。这3件事彼此非常不同。我将根据应用程序的年龄猜测您没有 MVC 应用程序。

区分其他两种类型的最佳方法是网站根目录中是否存在 .proj(项目)文件。如果它在那里,它就是一个 Web 应用程序。如果不是,它就是一个网站。

对于网络应用程序
如果是 Web 应用程序,请在父文件夹中查看是否有 .sln(解决方案)。如果是这样,请在视觉工作室中打开它。

如果 .sln 不存在(或项目不在其中),那么您可以创建一个新的空白解决方案并单击添加现有项目。从那里浏览到 .proj 文件并添加它。

此时在解决方案资源管理器中查看是否可以找到所有文件。最有可能的是,缺少的那些不包括在项目中。如果您没有看到它们,请单击解决方案资源管理器顶部的“显示所有文件”按钮。然后你找到它们,右键单击,然后说添加到项目。

Web 应用程序没有编辑和继续功能,但确实具有许多其他功能,这就是为什么没有人再使用网站的原因了。

对于网站
创建空白解决方案,然后单击添加现有网站。浏览到包含该站点的文件夹,然后单击添加。

开启调试/错误
调试和错误选项纯粹在 web.config 中。只需更改您的本地配置并通过 F5 再次运行它。

最后一点
我强烈建议,一旦您确定这是一个网站还是 Web 应用程序,并且您开始尝试调试这个野兽,您创建自己的网站/Web 应用程序作为测试。找一个关于这个的教程,有很多。你可以去asp.net 网站观看他们的培训视频。

使用它来构建几个带有导航和一些数据库连接的网页。这可能需要几天时间,但在此之前您将了解更多关于 .net 的信息。

新问题的更新
不仅是最好的,而且真正您应该调试的地方不在您的本地副本中。在共享文件集上调试效果不佳(网络驱动器存在许多安全问题)更不用说多个开发人员可能在该共享区域外工作并且在实时生产服务器上调试是一个巨大的禁忌.

现在有些人可能会说有时您必须在生产环境中进行调试。现实情况是,在生产中发现的问题正好分为两类:1. 您没有使用正确的数据进行测试。 - 这意味着您的测试环境需要更好。或者2.这是一个环境问题。解决 #2 的最佳方法是拥有一个与生产环境完全相同的登台服务器,您在上线之前对其进行最终测试。

如果您仍然认为必须在生产环境中进行调试,请考虑进行轻微更改的影响,这会彻底破坏您的网站。当然,您可以快速回滚该更改,但是您完全激怒了多少人。更重要的是,其中有多少是客户和/或高管?

这将我们带到最后一块。如果您的项目是一个网站项目,那么继续将它升级为一个 Web 应用程序项目。部署时,您不应该在那里复制代码。相反,一切都应该被编译。

【讨论】:

  • 嗨,克里斯,非常感谢!我非常感谢你花时间写这一切。相信我,我试过四处打听——没人知道。是的,我在当地工作,他们可以告诉我这么远,但出于其他原因,即使没有人这么说,我也会巧合地这样做。我希望你能在 Visual Studio 之外提供选择……我已经非常讨厌它了。 :P 无论如何,会尝试你所说的一切,看看我能想出什么!再次感谢!
  • 在使用过其他编辑器之后,Visual Studio 无疑是市场上最好的一个。我想这与您习惯的环境已经足够不同了,您已经在寻找替代方案。坚持下去。一旦你学会了自己的方式,没有什么可以接近的。祝你好运!
  • 另外,如果您使用所收到的确切错误消息(准确地转录它们)开始一个新问题,那么我们可能会帮助您解决任何这些调试问题。
  • @Chris 在这种情况下,如果我不使用@提及,您会收到通知,但我没有。 ;) 关于“为什么 Visual Studio 很烂”(google.com/search?q=%22why+visual+studio+sucks%22)除了个人品味之外,还有很多原因。像这样:andrewshough.com/development/… 我理解并且我可以看到它一定是最复杂和最完整的代码编辑器解决方案。但我个人的问题包括 .NET 和整个平台。在粗略地学习了 Python、Ruby、Java 和 .NET 之后,我发誓后者是最糟糕的。
  • @Chris 不是我的意思,但我只是假设这是你提出的唯一问题,在开发 .NET 时,我们应该始终只使用 Visual Studio,调试所有本地,然后使用稍后发布或任何其他方式在 snyc 中复制/保留 N 号。我认为这个问题现在正式死了! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-11
  • 2021-05-31
  • 1970-01-01
相关资源
最近更新 更多