【问题标题】:Prevent Visual Studio from automagically changing the physical path of IIS virtual directory?防止 Visual Studio 自动更改 IIS 虚拟目录的物理路径?
【发布时间】:2017-10-16 16:07:02
【问题描述】:

我有一个 Visual Studio“解决方案”,其中包含一个 Web 应用程序项目(在其他几个项目中)。 Visual Studio“典型”设置似乎坚持二进制文件的输出目录位于项目源目录的根目录中。特别是每次打开Web应用项目时,Visual Studio都会重置IIS虚拟目录的物理路径,指向项目目录。

这在很多层面都存在问题:

  1. 混合二进制输出目录和源代码树是不明智的
  2. 如果 Web 应用程序深埋在其他源的目录层次结构中,其中许多项目生成可用作 Web 应用程序中的支持库的库,则所有其他支持项目必须将其二进制输出目录设置为bin 目录是源代码树中某个不明显、无意义的位置。
  3. 这种“典型”VS 设置不会让您的 Web 应用设置与您从发布中获得的“生产”设置重复:源代码树中可能存在文件(从存储库提取中获取的旧 .js 文件,例如)在您的项目中未引用,因此不会在生产发布的包中,但在您的调试设置中。

在 Visual Studio 解决方案中配置所有项目以构建到一个干净地放置在源代码树之外的某个子目录中的 bin 目录是非常可能且非常容易的。确保 Web 应用程序构建将所有内容干净地放置在此目录中也很容易。配置 IIS 虚拟目录以指向此构建输出目录也很容易。然后 Visual Studio 不经通知和不请自来地通过任意更改精心配置的虚拟 IIS 应用程序的物理目录,使其指向源代码树的中间而搞砸了。

如何阻止这种疯狂的行为? IE。 如何防止 Visual Studio 在每次打开 Web 应用项目时自动重新设置虚拟 Web 目录的物理路径?

这个问题已经在 Stack Overflow 上被问过很多次了,但我没有看到真正的答案:

对这个问题 (IIS8.5 is automatically changing Physical Path property) 的回复只是表明如何控制 Visual Studio 重新指向的顺序。

这个问题和回复 (Visual Studio creating IIS virtual directories when solution opened) 只是确认了行为。

对这个问题 (Opening projects changes iis settings) 的回答是完全错误的,一些 cmets 也是如此。

这些问题 (Visual Studio 2012 changes IIS application directory without asking)、(Visual Studio changes local IIS configuration) 没有回复。

基本上没有人说不能做,但也没有人给出一个像样的解决方案。

【问题讨论】:

  • (最近有人对此表示赞同,所以:)几年前我想出了解决方案,并实施了它,但忘记了我已经发布了这个问题。现在我已经完全忘记了我做了什么,尽管我仍在使用它。因此,如果有人遇到此问题,请发表评论,我会花时间回顾一下解决方案,然后发布答案。

标签: visual-studio iis-7.5


【解决方案1】:

我在 IIS 中的应用程序指向 %SystemDrive%\inetpub\wwwroot\web,并希望它保持这种状态。和其他人一样,我发现每次在 Visual Studio 中打开解决方案(我使用的是 2017)时,它都会将应用程序在 IIS 中的路径更改为指向 Visual Studio 使用的路径。

我对我的项目的项目设置(网络标签)进行了以下更改。在服务器部分,我将下拉菜单设置为“外部主机”,然后输入项目 URL 为https://localhost/web。我现在可以在 VS 中打开解决方案,而无需更新 IIS 中的路径。

【讨论】:

  • 但您仍然能够调试、设置断点、单步执行代码等吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
相关资源
最近更新 更多