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

Dav*_*osh 3 visual-studio iis-7.5

我有一个 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 应用程序的物理目录,使其指向源代码树的中间,从而搞砸了这一点。

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

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

对该问题的回答(IIS8.5 自动更改物理路径属性)仅表明如何控制 Visual Studio 进行重新指向的顺序。

这个问题和响应(Visual Studio在解决方案打开时创建IIS虚拟目录)只是确认了该行为。

对这个问题(打开项目更改 iis 设置)的回答是完全错误的,一些评论也是如此。

这些问题(Visual Studio 2012 更改 IIS 应用程序目录而不询问)、(Visual Studio 更改本地 IIS 配置)没有任何答复。

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

小智 8

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

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

  • 但您仍然能够调试、设置断点、单步执行代码等吗? (2认同)