这发生在Visual Studio Community 2017最新更新之后。 每当我尝试打开我的项目时,我都会收到以下警告:
警告IDE0006加载项目时遇到错误。某些项目功能(例如失败项目的完整解决方案分析和依赖它的项目)已被禁用。 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。 < ExecuteCore> 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。< ExecuteInstantiatedTask> 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 Active
该项目的路径仅限拉丁字符。在构建服务器上构建正在运行,但是在VS的最后一次更新之后,我的计算机上没有。我试图重新安装VS但是没有帮助。
这个问题是否有任何解决方案或至少暗示?
编辑:我试图排除受此问题影响且有效的文件。但这不是我的问题的解决方案。 有趣的是,只有受影响的文件才是单元测试。
EDIT2:我尝试使用最新的Visual Studio 2017在新的Windows 10上构建完整的解决方案并且它失败了所以这显然是我的解决方案的问题,但仅限于新版本的VS.我在Visual Studio 2015上尝试了我的解决方案,并且构建工作正常。
无论如何,这里的Core.Test.csproj
文件就是其中之一,导致了这个问题。 https://pastebin.com/kq7MFLV1
答案 0 :(得分:7)
在您的情况下,问题是以下参考中的行返回:
<Reference Include="System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>
..\..\packages\System.Collections.Immutable.1.3.1\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
</HintPath>
</Reference>
将其更改为:
<Reference Include="System.Collections.Immutable, Version=1.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<HintPath>..\..\packages\System.Collections.Immutable.1.3.1\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
</Reference>
答案 1 :(得分:5)
我遇到了类似的问题,但就我而言,参考文献中的奇怪字符是
<Reference Include="Office, Version=11.0.0.0, 
 Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<Reference Include="stdole, Version=7.0.3300.0, 
 Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
将上述内容更改为:
<Reference Include="Office, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<Reference Include="stdole, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
解决了这个特殊问题。
提示:我通过反复试验解决了这个问题。我注释掉了csproj文件中的所有ItemGroup并逐个重新引入它们。虽然您的项目可能无法在此过程中构建,但很明显上述错误发生时,您将看到此错误,而不是由于缺少ItemGroup而导致的其他构建错误。
答案 2 :(得分:2)
@Delfi - 我在2017-08-18周五更新了VS 2017,并开始在某些项目中获得相同的“ResolvePackageFileConflicts”构建错误。我注意到.csproj文件中的任何引用都有一个Hintpath时会发生这个问题。使用记事本从受影响的引用中删除Hintpath后,构建现在可以正常工作。
这似乎是最新VS 2017更新的问题。 Visual C#2017 00369-60000-00001-AA019 Microsoft Visual C#2017
示例:
<Reference Include="Atalasoft.dotImage.WinControls, Version=10.0.6.53316, Culture=neutral, PublicKeyToken=2b02b46f7326f73b, processorArchitecture=x86">
<HintPath>..\..\..\..\..\Program Files\Atalasoft\DotImage 10.0\bin\4.0\Atalasoft.dotImage.WinControls.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
</Reference>
更改为...
*<Reference Include="Atalasoft.dotImage.WinControls, Version=10.5.0.61849, Culture=neutral, PublicKeyToken=2b02b46f7326f73b, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
</Reference>*
希望这可以帮助您解决问题。
注意:我没有尝试过,但也可以通过解决方案资源管理器删除并重新添加项目中受影响的引用来解决此问题。
答案 3 :(得分:1)
如果您遇到 Azure功能的问题,则可以使用此解决方案。
有效!
答案 4 :(得分:0)
我也遇到了同样的问题
<HintPath>>$(SolutionDir).lib\Foo.Bar.dll</HintPath>
删除>
为我工作。
<HintPath>$(SolutionDir).lib\Foo.Bar.dll</HintPath>