2013-10-29 60 views
5

我們正在制定一個框架並向客戶出售源代碼。昨天,其中一位客戶報告說,由於路線太長,他無法建立消息來源。我發現我們在源代碼中的最長路徑是NuGet生成的路徑,它是: project\packages\EnterpriseLibrary.ExceptionHandling.Logging.5.0.505.0\lib\NET35\Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.dll使用NuGet建設時的長路徑

加上客戶放置資源的文件夾名稱(它不會很長,大約90個字符),以及與合成絕對路徑時的奇怪VS行爲,它超過了260個字符的限制,並且他的VS無法編譯解決方案。

無論如何,我可以解決這個問題?我無法要求客戶把資源放在靠近磁盤的地方 - 他有自己的協議,把代碼放在公司內部。我也可以重命名這個DLL,但我不想失去對NuGet的支持。

+0

使用此策略將允許您通過使用符號鏈接縮短文件夾路徑:'MKLINK/D「C:\ tmp」「C:\ your \ really \ long \ path \ here」' –

回答

1

你可以做的事情不多。如果您的源代碼在合理的路徑下編譯(比如說「D:\ ExternalCode \ yourcode」),那麼處理此問題真的取決於您的客戶。如果客戶決定您的代碼必須在解決方案之前的240個字符的路徑中進行編譯,該怎麼辦?你會縮短你的所有名字嗎?

你需要做的是提供一個乾淨和簡單的手冊如何建立你的代碼。源於路徑長度的錯誤需要解決,您必須提供解決方案。該解決方案很可能是「縮短我們的代碼部署的路徑」。你無法適應那裏每一個其他公司的規則和規定。

+0

不幸的是我我沒有被授權這麼做。我們有記錄的限制,但框架只有160個字符,我們已經違反了這個規則。我無法增加這個數字。但仍然,謝謝你的答案 – Archeg