Visual Studio-недопустимые символы в пути

это происходит после последнего обновления Visual Studio Community 2017. Каждый раз, когда я пытаюсь открыть свой проект, я получаю следующее предупреждение:

предупреждение IDE0006 ошибка при загрузке проекта. Некоторые функции проекта, такие как полный анализ решения для неудачного проекта и зависящих от него проектов, были отключены. Ядро.Тесты

затем, когда я запускаю сборку, я получаю:

Ошибка " ResolvePackageFileConflicts" неожиданно задача не удалась. Система.ArgumentException: недопустимые символы в пути.
в системе.ИО.Путь.CheckInvalidPathChars (строковый путь, логический checkAdditional)
в системе.ИО.Путь.GetFileName (строковый путь)
в Microsoft.Сеть.Строить.Задачи.ItemUtilities.GetTargetPath (itaskitem item)
в Microsoft.Сеть.Строить.Задачи.ItemUtilities.GetReferenceTargetPath (itaskitem item)
на Майкрософт.Чистая.Построить.Задачи.Разрешения конфликтов.ResolvePackageFileConflicts.С. Б__35_1(ConflictItem ки)
в корпорации Microsoft.Чистая.Построить.Задачи.Разрешения конфликтов.ConflictResolver`1.ResolveConflicts(интерфейс IEnumerable`1 conflictItems, Функ`2 getItemKey, действие`1 foundConflict, логическое commitWinner, боевик`1 unresolvedConflict)
в Microsoft.Сеть.Строить.Задачи.Разрешение конфликтов.ResolvePackageFileConflicts.ExecuteCore ()
на Microsoft.Сеть.Строить.Задачи.TaskBase.Execute ()
в Microsoft.Строить.базовая программа.TaskExecutionHost.Microsoft.Строить.базовая программа.ITaskExecutionHost.Execute ()
в Microsoft.Строить.базовая программа.TaskBuilder.Д__26.Ядро MoveNext ().Тесты

, а потом

ошибка файла метаданных CS0006 'C:tmpbackendTestsDataLoader - ... ТестыbinDebugDataLoader.Тесты.dll " не удалось найти EResourceConnector.Тесты C:tmpbackendTestsEResourceConnector.ТестыCSC 1 Active

путь к проекту-только латинские символы. На сервере сборки Сборка работает, но на моем компьютере после последнего обновления не против. Я попытался переустановить VS, но это не помогло.

есть какие-нибудь решения или хотя бы намека на этот вопрос?

EDIT: я попытался исключить файлы, которые затронуты этой проблемой, и это сработало. Но это не решение моей проблемы. Интересно, что только затронутые файлы являются модульными тестами.

EDIT2: я попытался создать целое решение на свежем Windows 10 с последней Visual Studio 2017, и это не удается, поэтому это, очевидно, проблема моего решения, но только в новой версии VS. Я попробовал свое решение на Visual Studio 2015, и сборка работала нормально.

вот, например Core.Test.csproj файл, который является одним из тех, которые вызывают эту проблему. https://pastebin.com/kq7MFLV1

ScreenShot of the errors from this project.

4 ответов


в вашем случае проблема заключается в том, что строка возвращается в следующей ссылке:

<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, &#xD;&#xA;        Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<Reference Include="stdole, Version=7.0.3300.0, &#xD;&#xA;        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">

решена эта конкретная проблема.

совет: я решил это методом проб и ошибок. Я прокомментировал все ItemGroups в файле csproj и повторно представил их один за другим. Хотя ваш проект может не построить во время этого процесса, ясно, когда возникает вышеуказанная ошибка, поскольку вы увидите только эту ошибку и не другие ошибки сборки из-за отсутствия ItemGroups.


@Delfi-я обновил VS 2017 в пятницу 2017-08-18 и начал получать ту же ошибку сборки "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.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>&gt;$(SolutionDir).lib\Foo.Bar.dll</HintPath>

удаление &gt; работал для меня.

  <HintPath>$(SolutionDir).lib\Foo.Bar.dll</HintPath>