Visual studio “可能是什么造成的?”;“路径太长”;例外?

Visual studio “可能是什么造成的?”;“路径太长”;例外?,visual-studio,exception,assemblies,Visual Studio,Exception,Assemblies,我正在尝试构建一个VisualStudio加载项 出于冗长的原因(为了使用.NET Reflector提供的已分解的程序集),我删除了对EnvDTE程序集的引用,然后重新添加了它。我的项目仍然没有任何问题,但是当我运行我的项目时,我得到了以下异常 发生System.IO.PathTooLongException异常 Message=指定的路径、文件名或两者都太长。完全限定文件名必须少于260个字符,目录名必须少于248个字符。 Source=mscorlib 堆栈跟踪: 在System.IO.P

我正在尝试构建一个VisualStudio加载项

出于冗长的原因(为了使用.NET Reflector提供的已分解的程序集),我删除了对EnvDTE程序集的引用,然后重新添加了它。我的项目仍然没有任何问题,但是当我运行我的项目时,我得到了以下异常

发生System.IO.PathTooLongException异常 Message=指定的路径、文件名或两者都太长。完全限定文件名必须少于260个字符,目录名必须少于248个字符。 Source=mscorlib 堆栈跟踪: 在System.IO.PathHelper.GetFullPathName()中 内部异常:

我的参考文献都没有特别长的路径——它们都是GAC,长度大致相同。我没有尝试做任何不同于之前的事情,因为我在EnvDTE程序集上遇到了问题

有没有人知道是什么原因造成的,以及如何解决

更新: My 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>

bin\BoneSoft.CSS.dll
真的
假的
bin\HtmlAgilityPack.dll

尝试在记事本中打开.csproj,查看所有程序集的参考条目。几乎可以肯定的是,它们添加了一个奇怪的相对路径,导致它超出了HintPath节点中260个字符的限制


要修复此问题,只需删除HintPath元素,重新加载项目,问题就会消失。EnvDTE不需要它。

在Silverlight 5项目中更新对Telerik程序集的引用后,我也遇到了这个问题。按照JaredPar的建议删除HintPath节点后,我的问题得到了解决。我在这里提供了一个屏幕截图来显示损坏的版本(左侧)和修复的版本(右侧)。谢谢JaredPar。。。对不起,我还不能投票支持你的答案


感谢您的帮助,JaredPar,但正如您在我上面编辑的帖子中所看到的,没有一条参考路径显得异常长。