2017-10-16 132 views
0

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

这是有问题在很多层面:

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

将Visual Studio解决方案中的所有项目配置为在源目录树以外的某个子目录中构建到某个子目录中的bin目录是非常可能且非常简单的。确保Web应用程序构建将所有内容干净地放置在此目录中也很容易。将IIS虚拟目录配置为指向此构建输出目录也很容易。然后,Visual Studio,不经通知也不被禁止,通过任意改变精心配置的虚拟IIS应用程序的物理目录,将其指向源代码树的中间位置。

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

这个问题已经被问多次在这里对堆栈溢出,但我没有看到任何真正的答案:

这个问题(IIS8.5 is automatically changing Physical Path property)响应只是表明如何控制在Visual Studio中做的顺序及其repointing。

此问题与答案(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

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

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

相关问题