阻止Visual Studio自动更改IIS虚拟目录的物理路径?

时间:2017-10-16 16:07:03

标签: visual-studio iis-7.5

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

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

  1. 将二进制输出目录和源树混合起来是不明智的
  2. 如果Web应用程序深埋在其他源的目录层次结构中,其中许多项目生成可用作Web应用程序中的支持库的库,则所有其他支持项目必须将其二进制输出目录设置为bin目录在源代码树中的某个非显而易见的,无意义的位置。
  3. 这"典型" VS安装程序没有您的Web应用程序设置重复"生产"您将从发布中获得的设置:您的源代码树中可能存在文件(例如,存储库提取中存在旧的.js文件),这些文件未在您的项目中引用,因此不会出现在生产发布的包中,但是在你的调试设置中。
  4. 在Visual Studio解决方案中配置所有项目以构建到源树中外部干净地放置的某个子目录中的bin目录是非常可能且非常容易的。还可以轻松确保Web应用程序构建将所有内容干净地放在此目录中。将IIS虚拟目录配置为指向此构建输出目录也很容易。然后,通过任意更改精心配置的虚拟IIS应用程序的物理目录,将Visual Studio(未经宣布和未经禁止)搞砸,指向一个源代码树的中间位置。

    如何制止这种疯狂的行为?即如何在每次打开Web应用程序项目时阻止Visual Studio自动重新设置虚拟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)的回答是错误的,一些评论也是如此。

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

    基本上,没有人说它无法完成,但也没有人能提供合适的解决方案。

1 个答案:

答案 0 :(得分:2)

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

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