2017-03-03 68 views
0

不知何故,我的解決方案和項目的Path/FullPath不同。我的解決方案和項目存儲在不同的地點是不是一個好主意?

我的解決方案( 「customerreportingnet」)的路徑屬性是:

C:\Users\cshannon\Documents\Visual Studio 2013\Projects\customerreportingnet\customerreportingnet.sln 

該解決方案下的唯一項目是一個網站( 「http://localhost/EMS/customerreportingnet/」)。

網站項目的FULLPATH是這樣的:

C:\EnhancedMonthlySalesReporting\customerreportingnet\customerreportingnet 

爲什麼會在解決方案和項目的位置有什麼不同?

我在設置中做錯了什麼?我下載了從.zip文件,並將這些文件解壓到C:\ EnhancedMonthlySalesReporting \

我然後創建在IIS虛擬目錄,它映射到C:\ EnhancedMonthlySalesReporting \ customerreportingnet \ customerreportingnet,給它的別名「EMS 」。

然後在VS我打開網站(解決方案/項目)是這樣的:

文件>打開網站...

,然後我打開IIS> EMS

當我做到這一點,我在「項目」下看不到任何文件 - 在解決方案資源管理器中可以看到的只是解決方案和項目名稱 - 它們下面沒有子文件夾或文件。但是,當我右鍵點擊解決方案「customerreportingnet」並選擇「打開網站」,然後回答「打開網站(這將關閉當前的解決方案)」一切都比較好 - 我可以右鍵單擊項目「http://localhost/EMS/customerreportingnet/」),選擇在瀏覽器中查看(Internet Explorer),網站運行。

C語言中的唯一文件:\用戶\ cshannon \文檔\ Visual Studio的2013 \項目\ customerreportingnet \是:

customerreportingnet.sln customerreportingnet.v12.suo

C:\ EnhancedMonthlySalesReporting \ customerreportingnet \ customerreportingnet有這些文件和更多(以及beaucoup文件夾)。

我應該嘗試重置C:\ EnhancedMonthlySalesReporting \ customerreportingnet \ customerreportingnet的解決方案路徑,還是僅僅是一個奇怪的問題,但不是問題?

如果是這樣,就像改變那個屬性值一樣簡單,還是會把事情搞砸?

回答

1

解壓縮代碼並在Visual Studio中打開該項目後。

如果您打開一個項目(您也可以直接打開解決方案文件),Visual Studio會自動創建一個解決方案文件。一旦您點擊save all或保存您的解決方案文件,它將保存到以前的位置或默認位置。

既然你以前沒有保存文件,Visual Studio將其保存到默認位置:

C:\Users\cshannon\Documents\Visual Studio 2013\Projects\[ProjName]\[ProjName].sln 

如果你希望其他開發人員能夠輕鬆地打開項目。 (尤其是當您開始在1解決方案中使用多個項目時),您希望將解決方案文件包含在項目位置中。否則,每個開發人員都必須自己創建這個解決方案文件,這是煩人和繁瑣的工作。

由於DOTNET核心的最佳實踐文件結構是這樣的:

/root 
    /src <== contians all the projects per folder 
     /project1 
     /project1.csproj 
     /etc* 
     /project2 
    /[ANameForSolution].sln (so directly inside the proj folder, next to src) 

的老習慣的人使用比較平:

/root 
    /project1 
    /project2 
    /YourSolution.sln 

最佳實踐,移動一切/src是因爲最近一個項目的根目錄已經有了很多(config)文件,這樣你可以保持根目錄更清潔。

2

我的解決方案和項目存儲在單獨的 位置是不是一個好主意?

  • solution是 「容器」 的項目。他們在本地文件系統中的位置並不重要。所以在這種情況下,這很「好」。

    有一些解決方案環境由一些您之前完成的項目組成,這並不罕見。因此,您可以「組織」由位於其他地方(來自其他「解決方案」)的項目組成的「新」解決方案以及新項目。

  • 然而,一旦你進入Source Control,無論是TFSGIT,那麼它會事 - 他們(在溶液中的項目)都必須​​在同一個父文件夾可以很容易地處理。所以在這種情況下,這是「壞」。

    TLDR;仍然有辦法有效地控制「不同文件夾中的項目」 - 每一個都是自己獨立的「存儲庫」。但是,你必須手動/單獨做你的同步或合併等

如果我正確地按照你的帖子,我想你要找的是什麼Add...,不Open... - 要將一個現有項目或網站添加到解決方案。

取決於你以後,和哪些文件正在處理:

  • 如果你在壓縮文件中的Project,那麼你就可以Add Existing Project,等等...

不確定爲什麼你需要做你在IIS中所做的 - 你可以在Visual Studio(IIS Express)中進行調試。

或者,您可以從您的網站/應用程序從Visual Studio Publish和目標本地文件系統文件夾,然後您可以在IIS中設置(本地IIS,如果安裝) - 這種方式,你有一個「開發」( VS)和本地機器中的「登臺」(發佈文件夾映射到IIS)環境。

Hth ...

+0

謝謝;我這樣做(文件>打開網站...),因爲這些是我遞交項目給我的指示。我知道無論我採用哪種方式,我都會遇到挑戰,如果我偏離了他的具體指示,他會說這就是爲什麼它不起作用的理由。我曾嘗試將它作爲VS中的解決方案進行簡單打開,但也存在問題。如果對這個故事感興趣,請參閱http://stackoverflow.com/questions/42450617/why-is-my-file-supposedly-unable-to-be-read-due-to-insufficient-permissions-htt –

+1

@B。 ClayShannon一個網站或項目簡直就是他們(沒有魔法)。在你上面的IIS步驟中,不要添加_virtual目錄,而是嘗試「添加新網站」,以便它成爲它自己的應用程序(你可以管理它自己的應用程序池等),而不是一些「子應用程序」(一些父母)。當然,除非它已經「安裝」在本地機器上,否則它就是父應用程序的「孩子」。 – EdSF

+0

以這種方式添加一個網站,指向相同的文件,軟管東西了嗎?我想要做的最後一件事就是讓我已經取得的一小步進展變得糟糕。 –