我有两个独立的解决方案,SolutionA和SolutionB。 SolutionA引用SolutionB的输出,如下所示:
SolutionA
ProjectA1
References: ProjectB1.dll, ProjectB2.dll
ProjectA2
SolutionB
ProjectB1
ProjectB2
我想要做的是运行SolutionA来调试程序,然后再连接第二个IDE来调试SolutionB(例如,将ProjectA1逐步调试到ProjectB1中)。
到目前为止,我设法做到这一点的唯一方法是将ProjectB1添加到SolutionA中 - 这会强制您查看TFS中的解决方案,并且似乎不会被识别为同一个项目用于调试目的。有没有办法做到这一点?
答案 0 :(得分:1)
我们经常在包含导出库的大型项目中遇到此问题。你采取的方法是正确的,应该有效。
从源代码控制问题开始:我在执行此操作时遇到过TFS问题,因为项目不共享公共根文件夹 - 当项目文件不在解决方案的子文件夹中时,TFS不喜欢文件的位置。它可能会尝试从项目B1中剥离源控件绑定。我发现具有单独的工作空间,其中项目B1不在解决方案A的当前工作空间中,在这里有很多帮助。 (请注意不要在包含Project B1的情况下检查您的解决方案,否则获得解决方案的其他人可能会遇到错误的错误。)
如果不考虑用于调试目的的同一项目,请确保引用正确的配置/体系结构文件,它们是通过调试构建的,并且pdb文件可用。只要源文件与构建dll时所在的文件夹位置相同,VS就应该找到它们。您甚至不需要项目在解决方案中工作,VS将找到源文件,只要它们可用。将项目添加到解决方案中会为您提供额外的导航,智能感知等等,所以我肯定会走这条路。
最糟糕的情况是,尝试暂时将Project A1引用更改为项目级引用。同样,不会以这种方式检查您的解决方案,但它是使调试过程正常工作的快速方法。