我已经发现并发布了VS 2013,它将运行已打开的最新VS实例的代码。这令人沮丧,因为我有时必须看看同一个大项目的两个版本之间的差异。
如何重现: (我正在使用的例子可以在github上找到:https://github.com/charles1024/VS2013-Crossover-Bug)
我有两个相同解决方案的副本,我将其称为Hello1和Hello2。
Hello1在Default.aspx中有一行,它将标签(lblHelloWorld)的文本设置为“Hello World”。
Hello2有这一行,但它被注释掉了。
重现的步骤(重要的是要完全遵循):
可以通过在某处更改设置来解决此问题,还是实际上是错误?有没有解决方法?
注意:
有些人建议更改为正在运行的端口。我尝试了这个并没有任何区别。解决方案在其原始端口上运行,但仍然从VS的第二个实例运行代码。
* 更正* 我刚刚再次检查它,端口号似乎已修复它。显然只是保存Hello2并没有使端口更改生效。你必须关闭所有东西并重新打开。
答案 0 :(得分:5)
这不是Visual Studio中的错误。您打开了两个在同一端口(15770)上使用IIS Express的Web项目,因此最后获取IIS Express虚拟目录的是“获胜”。
右键点击该项目 - >属性 - >网页。在项目的一个上将项目URL更改为15771(您将询问是否要创建虚拟目录)。现在两者将并排运行。
答案 1 :(得分:3)
由于您使用相同的端口号,因此您拥有“最后一个胜出”类型的方案。您可以通过在项目URL中使用不同的端口号来防止这种情况发生。目前,您使用http://localhost:15770/
作为项目网址。将其更改为另一个数字是其中一个项目。
您可以在项目属性页面中更改此设置。