Когда я попытался открыть решение сегодня, Visual Studio 2015 пометил каждый проект в обозревателе решений как неудачный. Окно вывода "решения" сообщило о следующем исключении, один раз для проекта:
C:\Users\Path\To\My\Project\Foo.csproj: error: выражение "[Система.IO.Path]:: Combine(«C:\Users\ Мое имя \ Documents \ Visual Studio 2010 \Projects», obj \ Debug \ Fakes) не может быть оценено. Нелегальные персонажи в пути. C:\ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Fakes \ Microsoft.QualityTools.Тестирование.Fakes.targets
Пытаясь открыть еще несколько решений, я обнаружил, что Visual Studio теперь сообщает об этих ошибках для любого проекта, который пытается открыть.
Я сбросил все настройки Visual Studio, которые не решили проблему. Microsoft Fakes, похоже, является фальшивой средой для тестирования (поправьте меня, если я ошибаюсь); проекты не содержали никаких тестов, и я не обращался к Fakes преднамеренно.
Я не знаю, что изменило что-либо, связанное с Visual Studio или рассматриваемыми решениями, со вчерашнего дня, когда все еще работало. Моя параллельная установка Visual Studio 2010 по-прежнему работает нормально и может загружать решения и проекты.
В качестве эксперимента я отредактировал файл, упомянутый в сообщении об ошибке, Microsoft.QualityTools.Тестирование.Fakes.targets, особенно следующая строка:
<FakesIntermediatePath>$([System.IO.Path]::Combine('$(ProjectDir)','$(IntermediateOutputPath)Fakes'))</FakesIntermediatePath>
Я заменил '$(ProjectDir)'
на постоянную строку; это заставляет Visual Studio снова загружать проекты, но, поскольку я не уверен, какова цель этого сценария, я не решаюсь использовать этот обходной путь. Также это говорит о том, что значение $(ProjectDir)
может содержать недопустимые символы, что я не смог подтвердить. Мне также интересно, почему промежуточный каталог Fakes может быть размещен непосредственно в каталоге, в котором Visual Studio размещает свои проекты.