Неожиданный сбой задачи CheckFileSystemCaseSensitive, не удалось загрузить файл или сборку «System.IO.FileSystem».

В свой веб-проект Visual Studio 2017, ASP.NET Core, MVC я только что добавил пакет Microsoft.TypeScript.MSBuild NuGet версии 2.3.1 и одновременно обновил свои сборки ASP.NET Core с 1.0.* до 1.1.1. Теперь внезапно, когда я создаю свой проект, я получаю следующее исключение:

Severity    Code    Description Project File    Line    Suppression State
Error   MSB4018 The "CheckFileSystemCaseSensitive" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load file or assembly 'System.IO.FileSystem, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
File name: 'System.IO.FileSystem, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at TypeScript.Tasks.CheckFileSystemCaseSensitive.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

Двойной щелчок по сообщению об исключении приводит к следующим строкам в файле Microsoft.TypeScript.targets:

<Target Name="CheckFileSystemCaseSensitive">
    <CheckFileSystemCaseSensitive
       MSBuildThisFileFullPath="$(MSBuildThisFileFullPath)" >
      <Output TaskParameter="IsFileSystemCaseSensitive"  PropertyName="IsFileSystemCaseSensitive" />
    </CheckFileSystemCaseSensitive>
</Target>

где написано, что «MSBuildThisFileFullPath не определен».

Я попытался добавить ссылки на NETStandard.Library, как предлагается здесь: https://github.com/dotnet/corefx/issues/16206, но это не имеет никакого значения.

Диагностический вывод MSBuild выглядит следующим образом:

1>Target "CheckFileSystemCaseSensitive" in file "C:\Users\dkent\.nuget\packages\microsoft.typescript.msbuild\2.3.1\tools\netstandard1.3\Microsoft.TypeScript.targets":
1>  Using "CheckFileSystemCaseSensitive" task from assembly "C:\Users\dkent\.nuget\packages\microsoft.typescript.msbuild\2.3.1\tools\netstandard1.3\TypeScript.Tasks.dll".
1>  Task "CheckFileSystemCaseSensitive"
1>    Task Parameter:MSBuildThisFileFullPath=C:\Users\dkent\.nuget\packages\microsoft.typescript.msbuild\2.3.1\tools\netstandard1.3\Microsoft.TypeScript.targets
1>    [...]\.nuget\packages\microsoft.typescript.msbuild\2.3.1\tools\netstandard1.3\Microsoft.TypeScript.targets(172,5): error MSB4018: The "CheckFileSystemCaseSensitive" task failed unexpectedly.
1>    [...]\.nuget\packages\microsoft.typescript.msbuild\2.3.1\tools\netstandard1.3\Microsoft.TypeScript.targets(172,5): error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 'System.IO.FileSystem, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
1>    [...]\.nuget\packages\microsoft.typescript.msbuild\2.3.1\tools\netstandard1.3\Microsoft.TypeScript.targets(172,5): error MSB4018: File name: 'System.IO.FileSystem, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
1>    [...]\.nuget\packages\microsoft.typescript.msbuild\2.3.1\tools\netstandard1.3\Microsoft.TypeScript.targets(172,5): error MSB4018:    at TypeScript.Tasks.CheckFileSystemCaseSensitive.Execute()
1>    [...]\.nuget\packages\microsoft.typescript.msbuild\2.3.1\tools\netstandard1.3\Microsoft.TypeScript.targets(172,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
1>    [...]\.nuget\packages\microsoft.typescript.msbuild\2.3.1\tools\netstandard1.3\Microsoft.TypeScript.targets(172,5): error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
1>  Done executing task "CheckFileSystemCaseSensitive" -- FAILED.

Спасибо за любые предложения.


person Doug Kent    schedule 04.05.2017    source источник
comment
Замечу, что последняя версия System.IO.FileSystem 4.3.0, а не 4.0.1.0.   -  person Doug Kent    schedule 04.05.2017
comment
MSBuild распространяет собственные копии фасадных сборок, которые позволяют выполнять задачи, созданные в соответствии с сетевым стандартом. Я предлагаю зарегистрировать это как ошибку на github.com/Microsoft/msbuild/issues.   -  person Martin Ullrich    schedule 05.05.2017
comment
Готово: github.com/Microsoft/msbuild/issues/2061   -  person Doug Kent    schedule 05.05.2017
comment
Дополнительная информация: если я удалю папку obj в корне проекта, сборка будет успешной, пока я не закрою и не перезапущу Visual Studio. Восстановление после перезапуска Visual Studio снова приводит к ошибке. Я могу удалить папку obj и снова ошибка исчезает. Перестроить решение не имеет значения, равно как и закрытие и повторное открытие ни проекта, ни решения.   -  person Doug Kent    schedule 07.05.2017
comment
Пока это выглядит как ошибка либо в задачах typescript, либо в msbuild. но я думаю, что могу найти обходной путь (заменив неисправную цель). вы ориентируетесь на netcoreapp1.1 или .net framework TFM?   -  person Martin Ullrich    schedule 07.05.2017
comment
@MartinUllrich netcoreapp1.1   -  person Doug Kent    schedule 08.05.2017
comment
Вот последнее слово по этому поводу: github.com/Microsoft/TypeScript/issues/   -  person Doug Kent    schedule 18.01.2018


Ответы (3)


У меня была такая же ошибка в Vs2015, я установил скрипт типа с https://www.microsoft.com/en-us/download/confirmation.aspx?id=48593, и ошибка исчезла, вы можете попробовать

person Pradeep    schedule 20.05.2017
comment
Спасибо, что поделились этим решением, у меня сработало с VS2019. Я использовал TS 3.9 marketplace.visualstudio .com/ - person Markus Knappen Johansson; 18.08.2020

(старый вопрос, но это может помочь любому, кто ищет решение этой проблемы):

В качестве альтернативного способа настройки TypeScript для вашего проекта VS вы можете попробовать добавить в решение пакет nuget компилятора Microsoft TypeScript вместо пакета Microsoft.TypeScript.MSBuild. Вам может потребоваться настроить <TypeScriptToolsVersion> в файле .csproj (вам нужны только младшая и основная версии, например):

<TypeScriptToolsVersion>2.3</TypeScriptToolsVersion>
person Chris Halcrow    schedule 17.01.2018

Для Visual Studio 2017 Установите SDK TypeScript 3.0 непосредственно со страницы загрузки SDK TypeScript.скачать

person Jaspreet Singh    schedule 21.08.2020