Visual Studio-路径中的非法字符

这发生在Visual Studio Community 2017最新更新之后。 每当我尝试打开我的项目时,我都会收到以下警告:

警告IDE0006加载项目时遇到错误。 某些项目function(例如失败项目的完整解决方案分析和依赖它的项目)已被禁用。 Core.Tests

然后,当我运行构建时,我得到:

错误“ResolvePackageFileConflicts”任务意外失败。 System.ArgumentException:路径中的非法字符。
在System.IO.Path.CheckInvalidPathChars(String path,Boolean checkAdditional)
在System.IO.Path.GetFileName(字符串路径)
在Microsoft.NET.Build.Tasks.ItemUtilities.GetTargetPath(ITaskItem项目)
在Microsoft.NET.Build.Tasks.ItemUtilities.GetReferenceTargetPath(ITaskItem项目)
在Microsoft.NET.Build.Tasks.ConflictResolution.ResolvePackageFileConflicts。 c。 b__35_1(ConflictItem ci)
在Microsoft.NET.Build.Tasks.ConflictResolution.ConflictResolver`1.ResolveConflicts(IEnumerable`1 conflictItems,Func`2 getItemKey,Action`1 foundConflict,Boolean commitWinner,Action`1 unresolvedConflict)
在Microsoft.NET.Build.Tasks.ConflictResolution.ResolvePackageFileConflicts.ExecuteCore()
在Microsoft.NET.Build.Tasks.TaskBase.Execute()
在Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
在Microsoft.Build.BackEnd.TaskBuilder。 d__26.MoveNext()Core.Tests

然后

错误CS0006元数据文件’C:\ tmp \ backend \ Tests \ DataLoader.Tests \ bin \ Debug \ DataLoader.Tests.dll’找不到EResourceConnector.Tests C:\ tmp \ backend \ Tests \ EResourceConnector.Tests \ CSC 1活性

该项目的路径仅限拉丁字符。 在构建服务器上构建正在运行,但在VS的上次更新之后在我的计算机上。 我试图重新安装VS,但这没有帮助。

那么这个问题是否有任何解决方案或至少暗示?

编辑:我试图排除受此问题影响且有效的文件。 但这不是我的问题的解决方案。 有趣的是,只有受影响的文件才是unit testing。

编辑2:我尝试使用最新的Visual Studio 2017在新的Windows 10上构建完整的解决方案,但它失败了所以这显然是我的解决方案的问题,但仅限于新版本的VS. 我在Visual Studio 2015上尝试了我的解决方案并且构建工作正常。

无论如何,这里是例如Core.Test.csproj文件,这是导致该问题的其中一个。 https://pastebin.com/kq7MFLV1

ScreenShot来自这个项目的错误。

在您的情况下,问题是以下引用中的行返回:

   ..\..\packages\System.Collections.Immutable.1.3.1\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll   

将此更改为:

   ..\..\packages\System.Collections.Immutable.1.3.1\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll  

我有一个类似的问题但在我的情况下,它是由参考中的奇怪字符:

   

将以上内容更改为:

   

解决了这个特殊问题。

提示:我通过反复试验解决了这个问题。 我注释掉了csproj文件中的所有ItemGroup并逐个重新引入它们。 虽然您的项目可能无法在此过程中构建,但是很明显上述错误发生时您将看到此错误而不是由于缺少ItemGroup而导致的其他构建错误。

@Delfi – 我在2017-08-18周五更新了VS 2017,并开始在某些项目中获得相同的“ResolvePackageFileConflicts”构建错误。 我注意到.csproj文件中的任何引用都有Hintpath时发生的问题。 使用记事本从受影响的引用中删除Hintpath后,构建现在可以正常工作。

这似乎是最新VS 2017更新的问题。 Visual C#2017 00369-60000-00001-AA019 Microsoft Visual C#2017

例:

  ..\..\..\..\..\Program Files\Atalasoft\DotImage 10.0\bin\4.0\Atalasoft.dotImage.WinControls.dll False  

变成…

 * False * 

希望这可以帮助您解决问题。

注意:我没有尝试过,但也可以通过解决方案资源管理器删除并重新添加项目中受影响的引用来解决此问题。

我也遇到了这条线的同样问题

  >$(SolutionDir).lib\Foo.Bar.dll 

删除> 为我工作。

  $(SolutionDir).lib\Foo.Bar.dll