我有一个带有脏DLL文件的web项目(正如我向朋友解释的那样,当我向他展示以下错误时我正在接受断点)
断点当前不会被击中。在App_Web_c3jziwim.dll(服务器端符号)中找到了Default.aspx.vb的副本,但当前源代码与App_Web_c3jziwim.dll(服务器端符号)中内置的版本不同。
因为它是一个网站,我无法Build -> Clean Solution
所以我找到了this page that explains how to convert the Website to a Web Application。
现在我有this enormous list of errors
这是我列表中前5个错误的示例:
Handles子句需要在包含类型或其基类型之一中定义的WithEvents变量 Handles子句需要在包含类型或其基类型之一中定义的WithEvents变量 输入' SmartPeepDAL.SmartPeepManager'未定义。
Handles子句需要在包含类型或其基类型之一中定义的WithEvents变量 Handles子句需要在包含类型或其基类型之一中定义的WithEvents变量。
我不知道发生了什么问题或如何处理它。现在感到很不知所措,所以如果有人能提供帮助,我真的很感激。
答案 0 :(得分:2)
简单的答案是因为转换为Web应用程序功能非常糟糕。
长回答(不是VB人)你列出的错误只是错误的事件处理程序附件(https://msdn.microsoft.com/en-us/library/32787dt6.aspx)。查看页面标记AutoEventWireUp可能对此有帮助(http://forums.asp.net/t/932513.aspx?What+is+AutoEventWireup+)
现在我假设你还有一堆其他错误(这种转换非常正常)我总是遇到的问题是
A)名称空间 - 因为网站确实没有名称空间但是网络应用程序你可能需要在整个地方添加它们。
B)Codebehind与CodeFile - 我总是忘记哪个是哪个但通常在进行网站到应用程序转换时,我总是不得不改变它已经使用其他标签名称的那个。
此"断点当前不会被击中。在App_Web_c3jziwim.dll(服务器端符号)中找到了Default.aspx.vb的副本,但当前源代码与App_Web_c3jziwim.dll(服务器端符号)中内置的版本不同。"只是意味着你在一个与当前源代码不匹配的构建上运行调试(构建失败并运行以前的代码?)
答案 1 :(得分:0)
一点一点地解决问题,首先解决简单的问题。重构代码的一部分是重命名和/或添加所需的代码。如果你可以删除那些没有引用任何东西的代码,并且你真的不需要这样做也会使它更容易。
我发现删除代码有助于在升级项目或将其迁移到其他项目时清除错误。
以下有关WithEvents
,https://msdn.microsoft.com/en-us/library/32787dt6.aspx
WithEvents
与Handles
它被用作声明,因此您必须使用它们来声明代码中的事件。因此,请确保WithEvents声明您的事件(并正确处理):
Dim WithEvents EventsToRaiseClass as new EventClass