これは、Visual Studio Community2017の最新の更新後に発生します。プロジェクトを開こうとするたびに、次の警告が表示されます。
警告IDE0006プロジェクトのロード中にエラーが発生しました。失敗したプロジェクトやそれに依存するプロジェクトの完全なソリューション分析など、一部のプロジェクト機能は無効になっています。 Core.Tests
次に、ビルドを実行すると、次のようになります。
エラー「ResolvePackageFileConflicts」タスクが予期せず失敗しました。 System.ArgumentException:パス内の文字が無効です。
at System.IO.Path.CheckInvalidPathChars(String path、Boolean checkAdditional)
System.IO.Path.GetFileName(String path)で
Microsoft.NET.Build.Tasks.ItemUtilities.GetTargetPath(ITaskItem item)で
Microsoft.NET.Build.Tasks.ItemUtilities.GetReferenceTargetPath(ITaskItem item)
Microsoft.NET.Build.Tasks.ConflictResolution.ResolvePackageFileConflicts。<> c。 <ExecuteCore> b__35_1(ConflictItem ci)
Microsoft.NET.Build.Tasks.ConflictResolution.ConflictResolver`1.ResolveConflicts(IEnumerable`1conflictItems、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.TestsC:\ tmp\backend\Tests\EResourceConnector.Tests\CSC 1アクティブ
プロジェクトへのパスはラテン文字のみです。ビルドサーバーではビルドは機能していますが、VSの最後の更新後の私のコンピューターでは機能していません。 VSを再インストールしようとしましたが、役に立ちませんでした。
それで、この問題の解決策または少なくともヒントはありますか?
編集:私はこの問題の影響を受け、それが機能したファイルを除外しようとしました。しかし、それは私の問題の解決策ではありません。興味深いのは、影響を受けるファイルだけが単体テストであるということです。
EDIT2:最新のVisual Studio2017を使用して新しいWindows10でソリューション全体を構築しようとしましたが、失敗したため、明らかに私のソリューションの問題ですが、VSの新しいバージョンでのみ発生します。 Visual Studio 2015でソリューションを試しましたが、ビルドは正常に機能しました。
とにかく、ここに例えばCore.Test.csproj
その問題を引き起こしているこれらの1つであるファイル。 https://Pastebin.com/kq7MFLV1
あなたの場合、問題は次の参照で行が返されることです。
<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>
私も同様の問題を抱えていましたが、私の場合は、リファレンスの奇妙な文字に起因していました。
<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をコメントアウトし、それらを1つずつ再導入しました。このプロセス中にプロジェクトのビルドに失敗する可能性がありますが、ItemGroupがないために他のビルドエラーではなく、このエラーだけが表示されるため、上記のエラーがいつ発生するかは明らかです。
@ Delfi- 2017年8月18日金曜日にVS2017を更新し、一部のプロジェクトで同じ「ResolvePackageFileConflicts」ビルドエラーが発生し始めました。 .csprojファイル内の参照にヒントパスがある場合に問題が発生することに気づきました。メモ帳を使用して影響を受ける参照からヒントパスを削除した後、ビルドは正常に機能するようになりました。
これは、最新のVS2017アップデートの問題のようです。 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>*
これがあなたの問題に役立つことを願っています。
注:試していませんが、ソリューションエクスプローラーを使用して、プロジェクト内の影響を受ける参照を削除して再度追加することで修正できる可能性があります。
私もこのラインで同じ問題に直面していました
<HintPath>>$(SolutionDir).lib\Foo.Bar.dll</HintPath>
>
を削除するとうまくいきました。
<HintPath>$(SolutionDir).lib\Foo.Bar.dll</HintPath>