0

我得到了一个项目,我应该在其中调试 Windows 窗体应用程序中的问题。我找到了问题所在,但它位于一个类库中,该类库作为我的 Windows 窗体应用程序解决方案的一个组件包含在内。

如何在类库项目中添加/修改代码并实际运行它以便我可以调试它?如果我按原样对类库进行任何更改,应用程序将忽略更改并使用原始源代码。

类库文件夹中包含的唯一内容是纯源代码文件、一些设置文件和 .vbproj。我只想对类库进行更改并实际上能够调试它们。如果有人可以请解释我必须做什么,将不胜感激!

4

2 回答 2

3

您的应用程序未加载通过编译类库生成的程序集。它正在从某个地方加载另一个副本。

一种快速查找位置的方法是从 Visual Studio 启动应用程序,进入调试器,然后打开模块窗口(调试>Windows>模块)。在 Name 列中查找类库并检查 Path。

如果它位于 C:\Windows\Microsoft.NET\assembly... 下,则从 GAC 加载旧版本。如果它是另一个位置,您将需要确保类库项目输出到该位置。

启动项目是否有对解决方案中类库的项目引用?您始终可以在启动应用程序项目中删除并重新添加对类库的引用,并确保将其添加为项目引用。

不过要小心,可能有一个很好的理由说明最初的情况并非如此。

编辑

关于如何定位程序集的完整说明超出了 SO 帖子的范围 - 您需要研究运行时如何定位程序集。

没有对典型的解决方案默认值进行任何更改,库很可能从启动可执行文件所在的同一文件夹中加载。将项目引用设置为库会导致它被编译并复制到该项目的 bin 文件夹 - 因此请确保启动项目具有对您的类库项目的项目引用。(右键单击启动项目并检查添加引用...对话框。引用应来自解决方案部分)。

您需要检查项目属性页以查看是否配置了特殊内容。

99.99% 的时间,构建整个解决方案并点击运行应该可以工作。如果它不起作用,则说明解决方案中有问题和/或设置了某种自定义部署。

偏离默认部署的方法太多了,我在这里无法给出具体的指导;最好的办法是让知识渊博的人亲自查看,或者您可以将来源发送给他进行检查。

于 2013-11-14T07:36:10.750 回答
0

我刚刚去了 Project Properties ....Project Dependencies 并检查(勾选)类 /assembly(.dll) 名称...它对我有用。现在我不需要运行类项目来反映在启动项目中的更改..

于 2017-08-22T11:10:24.970 回答