2010-08-18 73 views
2

我正在嘗試構建一個Visual Studio加載項。對於長期的原因(使用.NET Reflector的反彙編程序集),我刪除了對EnvDTE程序集的引用,然後重新添加了它。我的項目仍然生成沒有任何問題,但是當我運行我的項目時,我得到以下異常。什麼可能導致「Path Too Long」異常?

發生System.IO.PathTooLongException 消息=指定的路徑,文件名或這兩者太長。完全限定的文件名必須少於260個字符,且目錄名稱必須少於248個字符。 源= mscorlib程序 堆棧跟蹤: 在System.IO.PathHelper.GetFullPathName() 的InnerException:

我引用的都沒有特別長的路徑 - 他們都GAC和大致相同的長度。我沒有嘗試做任何與EnvDTE組裝有問題之前不同的事情。

有沒有人有任何想法可能會導致這種情況,以及如何解決?

UPDATE: 我的csproj文件顯示以下引用路徑:

<ItemGroup> 
    <Reference Include="BoneSoft.CSS"> 
     <HintPath>bin\BoneSoft.CSS.dll</HintPath> 
    </Reference> 
    <Reference Include="EnvDTE, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> 
     <EmbedInteropTypes>True</EmbedInteropTypes> 
    </Reference> 
    <Reference Include="Extensibility, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> 
     <EmbedInteropTypes>False</EmbedInteropTypes> 
    </Reference> 
    <Reference Include="HtmlAgilityPack"> 
     <HintPath>bin\HtmlAgilityPack.dll</HintPath> 
    </Reference> 
    <Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    <Reference Include="Microsoft.VisualStudio.Shell, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> 
    <Reference Include="Microsoft.VisualStudio.Shell.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    <Reference Include="microsoft.visualstudio.shell.interop.8.0, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    <Reference Include="Microsoft.VisualStudio.Shell.Interop.9.0, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
    <Reference Include="System" /> 
    <Reference Include="System.Core" /> 
    <Reference Include="System.Data" /> 
    <Reference Include="System.Windows.Forms" /> 
    <Reference Include="System.Xml" /> 
    <Reference Include="Microsoft.CSharp" /> 
    </ItemGroup> 

回答

1

嘗試對外開放記事本你的.csproj,並期待在您的所有組件的參考條目。幾乎肯定會發生的是,它們被添加了一個奇怪的相對路徑,導致它延長超過HintPath節點中260個字符的限制。

要修復只是刪除HintPath元素,重新加載您的項目,問題應該消失。 EnvDTE沒有必要。

+0

感謝您的幫助JaredPar,但你可以在我的編輯張貼在上面看到的,沒有一個參考的路徑就顯得特別長。 – awj 2010-08-18 19:09:21

0

在我的Silverlight 5項目中更新對Telerik程序集的引用後,我也遇到了這個問題。在JaredPar建議刪除HintPath節點後,我的問題得到解決。我在這裏提供了一個屏幕截圖,以顯示破損版本(左側)和固定版本(右側)。謝謝JaredPar ...對不起,我還沒有投票答覆。

Compare Broken vs. Fixed

相關問題