2013-07-23 37 views
2

我知道創建項目時允許的最大路徑長度爲260個字符,目錄爲248個字符。 但即使我的路徑長度少於200個字符,我也會收到此錯誤。即使路徑長度小於260個字符,Visual Studio - PathTooLongException

我的解決方案文件駐留在該文件夾C:\ Users \用戶名\文檔\ Visual Studio 2010的\項目\ Health12.Domain12.WardManagement =>88個字符 當我嘗試添加一個新的類庫名稱爲「 Health12.Domain12.WardManagement.Service.Contract「到這個解決方案,它給我路徑太長的異常。

C:\ Users \用戶名\文件\的Visual Studio 2010 \項目\ Health12.Domain12.WardManagement \ Health12.Domain12.WardManagement.Service.Contract =>138字符

C:\ Users \用戶名\文件\的Visual Studio 2010 \項目\ Health12.Domain12.WardManagement \ Health12.Domain12.WardManagement.Service.Contract \ Health12.Domain12.WardManagement.Service.Contract.csproj =>195字符

無可能的文件或文件夾超過了260個字符的限制。

如果我從 「Health12.Domain12.WardManagement.Service。合同」 到 「Health12.Domain12.WardManagement.Service。精讀」,它工作正常更改項目名稱。 任何想法,爲什麼Visual Studio不會允許創建項目,即使它不跨越最大允許長度限制。

回答

4

在Visual Studio中路徑的長度被計算爲如下:

  1. 路徑溶液:C:\Users\username\Documents\Visual Studio 2010\Projects\Health12.Domain12.WardManagement\ = 89個字符
  2. 2 *項目名稱:Health12.Domain12.WardManagement.Service.Contract\ = 50個字符
  3. 保留的字符:項目中文件的附加字符,編譯文件,臨時文件,... = 80個字符

在你的情況:89 + 2 * 50 + 80 = 269

限爲259((Drive char):\(256-character path))(見Naming Files, Paths, and Namespaces

你必須刪除10個字符。要麼將項目路徑的長度減少10個字符,要麼刪除項目名稱中的5個字符(例如"tract")。

+0

感謝您的好解釋。但我不明白爲什麼它將項目名稱長度乘以2.任何想法? – Andy

+0

因爲有很多包含項目名稱的臨時文件和輸出文件。 (例如:解決方案/項目名稱/ obj /發佈/項目名稱.FileListAbsolute.txt的路徑) –

+0

沒有這樣的限制。我有更長的路徑,例如由可以處理它們的GitHub Desktop創建。那麼Nuget包管理器有沒有解決方案? – amuliar

3

此限制是Windows內核的一部分,難以解決。我找到了一個解決方法,允許使用超過260個字符的路徑。

聲明:我已經試過這招只適用於Windows 8的x64和Visual Studio 2013

所以,使它工作我剛剛創建一個結到該文件夾​​與mklink命令:

假設這是原始路徑:d:\ very \ very \ long \ path \ to \ solution \文件夾,您可以獲得一個簡短鏈接d:\ short_path_to_solution_folder只需以管理員身份從dos shell執行此命令即可:

mklink /J d:\short_path_to_solution_folder d:\very\very\long\path\to\solution\folder 

更改來源和目的地路徑以滿足您的需求。

最好的問候! Stelvio

+0

OP寫道沒有達到260個字符的限制,但也許這也可以幫助。 –

相關問題