21

我在 c:\Dev\MyApp\Main 上有一个受源代码控制(TFS 2012 也是)的应用程序。

因为我正在开发一个新功能,所以我决定在 c:\Dev\MyApp\BranchNewFeature 上开设一个分支。

我开发了,当我决定是时候测试它就像我根本没有做任何改变一样。我按 F5 并看到了应用程序的基线版本...查看它我注意到一个非常奇怪的事实:当我检查 IIS Express 时,应用程序的“启动路径”是旧的(c:\Dev\MyApp\主要的)。

谁能帮我让 IIS Express 指向新路径?(C:\Dev\MyApp\BranchNewFeature)

4

7 回答 7

24

我遇到了同样的问题。为了修复它,我使用了cheesemacfly的建议来更新C:\Users\%USERNAME%\Documents\IISExpress\config\applicationhost.config以指向新目录。

此解决方案的明显缺点是,如果您计划经常在新分支之间切换,则需要重复执行此操作。似乎是VS2012中的一个错误......

于 2013-05-18T00:47:35.560 回答
17

重新启动 VS 似乎可以解决此问题。这只是一种替代解决方案,就像所有 Windows 产品的规范一样 - 关闭并重新启动,然后繁荣它会工作!

事情是这样的:在我使用 VS2013 在一个分支中处理一个 Web 项目后,我遇到了同样的问题。正如上面提到的 Chris Gillum,我在重新启动 VS 时打开了 applicationhost.config,并且该文件使用正确的路径自动刷新。所以,这绝对是 Visual Studio 中的一个错误。

更新:

自从我发布这个答案以来,我已经多次看到这个问题。而且我找到了重新启动VS的替代方法。这是我现在要做的:

  1. 右键单击 IISExpress 图标,然后单击“显示所有应用程序”
  2. 从列表中选择站点名称
  3. 单击(并打开)配置文件
  4. 在以下部分中搜索并修复工作区的物理路径:

    <sites>
        <site name="MyWebSite" id="XXX">
            <virtualDirectory path="/" physicalPath="FIX_THIS_PATH" />
        </site>
    <sites>
    

IISExpress会自动刷新站点,不需要重启VS。希望这可以帮助某人。

于 2014-02-18T15:35:34.160 回答
3

如果您在 Visual Studio 2015 中搜索相同的问题,applicationhost.config 文件已移至隐藏文件夹:$SolutionDirectory/.vs/config。

于 2016-06-17T18:54:08.733 回答
2

当您打开包含 IISExpress Web 项目的 Visual Studio 解决方案时,applicationHost.config<site>元素配置会更新。如果您随后为单独的分支打开解决方案,则<site>配置可能会被覆盖以指向该单独的分支。

例如,假设您有一个解决方案的两个分支,其中包含一个配置为在端口 4000 上使用 IISExpress 的 Web 项目。当您打开 Branch1 的解决方案时,applicationHost.config 将使用<site>在 localhost:4000 指向的注册站点的元素进行更新到 Branch1 的文件夹。当您“开始调试”您的解决方案时,您的浏览器会打开 localhost:4000 并且一切正常。

如果您随后打开 Branch2 的解决方案,将再次修改 applicationHost.config,覆盖该<site>元素,以便 localhost:4000 现在指向 Branch2。现在,如果您在打开的 Branch1 解决方案或打开的 Branch2 解决方案中“开始调试”,则 localhost:4000 将指向 Branch2,因为这就是 applicationHost.config 文件中的内容。

要解决此问题,请将两个分支配置为使用不同的端口,然后 Visual Studio 将管理两个单独的 applicationHost.config<site>元素,每个分支一个。每次创建新分支时,您都需要记住配置一个新的端口号。

于 2014-07-02T13:23:43.813 回答
1

我有类似的情况,我复制了一个项目。运行项目后,它会在浏览器中显示原始项目,而不是我复制、编辑的版本。我的解决方案是从配置文件中删除所有受影响的站点:

C:\Users\%USERNAME%\Documents\IISExpress\config\applicationhost.config

然后我不得不右键单击 Visual Studio 中的项目,单击Properties然后单击Web选项卡,在此选项卡上我更改了指定的端口Project Url并保存。Visual Studio 然后询问我是否要将项目添加回应用程序主机配置文件。我单击是并运行该项目,突然一切都很好。

我的特殊问题不是 Visual Studio 中的错误,而是配置不匹配。

于 2014-03-12T10:27:34.407 回答
1

当我找到这篇文章时,我遇到了类似的情况,并且正在寻找答案。我考虑过应用这个修复,但觉得每次需要再次分支或合并时都要付出很多努力。

我做了更多的挖掘,我相信我找到了一个更简单的解决方法。我发现在 Visual Studio 2013 中,如果您打开项目的属性,然后单击 Web 选项,您将看到一个带有“创建虚拟目录”按钮的服务器部分。

如果你点击这个按钮,它会提示你一个关于它指向一个不同的目录然后项目所在的问题,想要修复它。当您单击是时,它会为您进行修复,并且当您现在调试时,它将从正确的位置拉出。

于 2015-04-24T17:47:46.790 回答
0

在 VS 2015 中,我不必直接编辑配置文件。我打开了分支项目并转到项目下的属性页面。转到 Web 选项卡并编辑服务器 > 项目 URL。

于 2016-10-14T13:15:40.090 回答