2010-08-18 109 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

相关问题