2017-10-16 186 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中的路徑。

相關問題