2014-05-01 77 views
0

我在使用Windows 8 Professional的Visual Studio Ultimate 2013上運行的ASP.NET MVC 5應用程序和使用MongoDB 2.6作爲數據庫時遇到了一些奇怪的行爲。複製的VS解決方案之間的衝突

最初有一個解決方案;我們稱之爲阿爾法。然後,我複製瞭解決方案(直接複製並粘貼到Windows資源管理器中),以創建一個新的解決方案;讓我們稱之爲Bravo。我更改了解決方案和項目名稱以及所有相關文件名,然後對Bravo的內容進行了大量編輯,以便在應用程序在瀏覽器中運行時,它與Alpha顯得非常不同。

奇怪的行爲如下。如果我在Visual Studio中使用Bravo,並在瀏覽器中運行它,那麼所有內容都與Bravo預期的一樣。但是,如果我在Visual Studio中加載Alpha,然後運行Bravo,那麼顯示的網站實際上是由Alpha中的代碼表示的,而不是Bravo中的代碼。如果我關閉運行Bravo的Visual Studio實例,重新啓動它,然後運行Bravo應用程序,則顯示的網站將回到Bravo的預期版本。

因此,似乎Bravo中還有一些引用Alpha的東西。如果我加載Alpha,那麼某些內容會加載到內存中,這會覆蓋Bravo在應用程序啓動期間提供的數據。只有當我重新啓動Visual Studio並使用Bravo刷新此內存時,纔會使用Bravo的更新版本運行,而不是使用原始版本的Alpha。同樣,如果我在Visual Studio中加載Alpha,然後在Visual Studio的另一個實例中加載Bravo解決方案,然後運行Alpha - 它會顯示我期望從Bravo出現的內容。

什麼是造成這種行爲的任何想法,或者我如何進一步調查?

謝謝:)

+0

如果您使用IIS,我會檢查IIS路徑,並確保它們不重疊並指向相應的項目文件夾。 –

+0

我現在只是直接使用開發服務器,直接使用Visual Studio。 – Karnivaurus

+0

我唯一能想到的就是你的兩個解決方案都位於同一個物理文件夾中,並且都是從同一個地方引用文件。因此,兩個解決方案都使用相同的bin文件夾。所以當你建立一個,它覆蓋箱中的所有東西。確保你的解決方案在完全獨立的文件夾中。 –

回答

0

謝爾蓋是正確的。

當我在IIS中託管的Web解決方案之間來回切換時,我總是發生這種情況,所以我總是不得不來回更改路徑。這從VS 2012開始,並繼續在VS 2013.

我找不到有關它爲什麼會發生或如何糾正它的很多信息。據我所知,只有變通方法。

Workaround and info on the bug request

another potential post on same subject.

我個人,只是手動更改來回。