TypeScript: The "IsFileSystemCaseSensitive" parameter is not supported by the "FindConfigFiles" task

TypeScript Version: 2.3.1

Building Solution from Visual Studio is successful. But my TFS Build Agent fails with the following message: image

In project.csproj, I’m telling MSBuild to use <TypeScriptToolsVersion>2.3</TypeScriptToolsVersion> (which is the default that was put in there)

tsconfig.json:

{
    "compileOnSave": true,
    "compilerOptions": {
        "noEmitOnError": true,
        "noImplicitAny": true,
        "noImplicitThis": true,
        "noUnusedLocals": true,
        "pretty": true,
        "removeComments": true,
        "forceConsistentCasingInFileNames": true,
        "target": "ES5"
    },
    "files": [
        "./Scripts/site.ts"
    ],
    "typeRoots": [ "./Scripts/typings" ]
}

And my NuGet packages Microsoft.TypeScript.MSBuild and Microsoft.TypeScript.Compiler are both v2.3.1

Expected behavior:

  • Build Agent yields successful build that reflects local build

Actual behavior:

  • Error related to Microsoft.TypeScript.targets file, see above

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 4
  • Comments: 37 (14 by maintainers)

Most upvoted comments

@gregveres Yes you can delete these imports

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />

You need one .props and one .target (from the same package)

I have the same error on VS2017 1>------ Rebuild All started: Project: Shared, Configuration: Debug Any CPU ------ 1>C:\DATA\DEVELOP\JRIApp1.5.14\DEMOS\demoTS\packages\Microsoft.TypeScript.MSBuild.2.5.2\tools\Microsoft.TypeScript.targets(185,8): error MSB4064: The “IsFileSystemCaseSensitive” parameter is not supported by the “FindConfigFiles” task. Verify the parameter exists on the task, and it is a settable public instance property. 1>C:\DATA\DEVELOP\JRIApp1.5.14\DEMOS\demoTS\packages\Microsoft.TypeScript.MSBuild.2.5.2\tools\Microsoft.TypeScript.targets(182,5): error MSB4063: The “FindConfigFiles” task could not be initialized with its input parameters. ========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

I tried before to compile in VS2015 it worked. What’s the reason of this?

Edit: I have no idea what i did, was stuffing around a lot and somehow it just started working for me :S

I will leave what i wrote before just in case but feel free to ignore me…

I just started getting this issue too, it started when I added the nuget package to an already working project (ts files were being compiled with 2.4 just fine but needed VSOnline support).

The build error happens locally and on VSO, i removed all references to typescript form the project except for the ones relating the nuget package once the issue cropped up, but it still happens.

I can provide a diagnostic level log and project (anonymised) if you really need it (even anonymised id still prefer not to post it publicly if possible incase i miss something)

The nitty gritty boils down to same issue as TobiasSekan mentioned at https://github.com/Microsoft/TypeScript/issues/15536#issuecomment-308067373 despite the task assembly being set its not using it (uses the right targets file though), although there does appear to be an issue with the path particularly the
**'\build\\..\tools\'** part, note the double \ but even if i edit the targets file to always use a hard coded location it doesn’t seem to work.

Obviously if i copy the files from C:\Development\PassingPlan\GnosisPassingPlan\packages\Microsoft.TypeScript.MSBuild.2.4.1\tools\net45
to C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0\TypeScript\

it builds just fine … so somehow the the TypeScript that is natively part of VS (or is it added via the typescript sdk) is taking precedence, unfortunately that hack doesn’t help me on VSOnline hosted VS2017 build.

Pertinent log (from unmodified targets file) entries:

TypeScriptTaskAssembly = C:\Development\projectname\FWprojectname\packages\Microsoft.TypeScript.MSBuild.2.4.1\build\\..\tools\net45\TypeScript.Tasks.dll

Target "FindConfigFiles: (TargetId:13)" in file "C:\Development\projectname\FWprojectname\packages\Microsoft.TypeScript.MSBuild.2.4.1\tools\Microsoft.TypeScript.targets" from project "C:\Development\projectname\FWprojectname\FWprojectname\FWprojectname.vbproj" (target "Clean" depends on it):

Using "FindConfigFiles" task from assembly "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0\TypeScript\TypeScript.tasks.dll".

C:\Development\projectname\FWprojectname\packages\Microsoft.TypeScript.MSBuild.2.4.1\tools\Microsoft.TypeScript.targets(184,8): error MSB4064: The "IsFileSystemCaseSensitive" parameter is not supported by the "FindConfigFiles" task. Verify the parameter exists on the task, and it is a settable public instance property.

C:\Development\projectname\FWprojectname\packages\Microsoft.TypeScript.MSBuild.2.4.1\tools\Microsoft.TypeScript.targets(181,5): error MSB4063: The "FindConfigFiles" task could not be initialized with its input parameters. 

I can confirm that the issue is still live in Visual Studio 2017 Version 15.2 (26430.15) with TypeScript 2.4.1.

I can also confirm that I only have one import of the above packages mentioned by @TobiasSekan.

Any suggestions, please?

Yup, I can confirm that we too had multiple targets when we had that error and removing all except one helped.

Yes, you are right.

The standard imports inside the project file will not be erased or replaced, when I install TypeScript over the NuGet package manager.

I have comment out the standard TypeScript imports and now it is working. (TypeScript 2.4)

1>PreComputeCompileTypeScriptWithTSConfig:
1>  *\packages\Microsoft.TypeScript.MSBuild.2.4.0\build\\..\tools\tsc\tsc.exe --project "*\Webpage\tsconfig.json" --listEmittedFiles --locale de-DE
1>CompileTypeScriptWithTSConfig:
1>  *\packages\Microsoft.TypeScript.MSBuild.2.4.0\build\\..\tools\tsc\tsc.exe --project "*\Webpage\tsconfig.json" --listEmittedFiles --locale de-DE

For the future: That should be comment on the documentation for NuGet package install or that should be automatically correct on install the package.

Have a nice day

I just ran into this issue. I had read this issue before getting 2.2.3 working locally because i was having problems getting it working locally, but I got past that.

Here is what I have done that gets to me to having this problem.

Our project was working great on TS 1.8. We didn’t have the NuGet package installed, we are using VS2015 (latest) with the TS1.8 extension installed. This was building just fine locally and on VSO. We have two build definitions there - one we use for our continuous integration and one is our official release build.

To get our project to use the latest TS, I installed the latest Nuget package for TS, but that didn’t work. I got this error immediately because I think the Nuget package upgraded the command line arguments to use, but the project file was still specifying that we use 1.8.

So I installed the 2.3.3 extension and that fixed it. Interestingly, our project file was still saying TS version of 1.8 but I could now build, including doing a make clean locally.

So to recap - our local environment is working fine because I have the VS 2015 TS 2.3.3 extension installed and I have TS 2.3.3 Nuget package installed.

Then I checked in the code and did a build on VSO. We have a continuous integration build definition that has “Clean” unchecked. This build worked properly.

But our production build had “Clean” Checked and on the clean step, we get an error:

##[error]SquashSpider\packages\Microsoft.TypeScript.MSBuild.2.3.3\tools\Microsoft.TypeScript.targets(182,8): Error MSB4064: The "IsFileSystemCaseSensitive" parameter is not supported by the "FindConfigFiles" task. Verify the parameter exists on the task, and it is a settable public instance property.
2017-06-10T01:19:44.6488474Z d:\a\1\s\SquashSpider\packages\Microsoft.TypeScript.MSBuild.2.3.3\tools\Microsoft.TypeScript.targets(182,8): error MSB4064: The "IsFileSystemCaseSensitive" parameter is not supported by the "FindConfigFiles" task. Verify the parameter exists on the task, and it is a settable public instance property. [d:\a\1\s\SquashSpider\SquashSpider\SquashSpider.csproj]
2017-06-10T01:19:44.6488474Z ##[error]SquashSpider\packages\Microsoft.TypeScript.MSBuild.2.3.3\tools\Microsoft.TypeScript.targets(179,5): Error MSB4063: The "FindConfigFiles" task could not be initialized with its input parameters. 
2017-06-10T01:19:44.6498474Z d:\a\1\s\SquashSpider\packages\Microsoft.TypeScript.MSBuild.2.3.3\tools\Microsoft.TypeScript.targets(179,5): error MSB4063: The "FindConfigFiles" task could not be initialized with its input parameters.  [d:\a\1\s\SquashSpider\SquashSpider\SquashSpider.csproj]
2017-06-10T01:19:44.6498474Z Done Building Project "d:\a\1\s\SquashSpider\SquashSpider\SquashSpider.csproj" (Clean target(s)) -- FAILED.
2017-06-10T01:19:44.6558466Z Done Building Project "d:\a\1\s\SquashSpider\SquashSpider.sln" (Clean target(s)) -- FAILED.

This is when I noticed that our project file still had the TS version set to 1.8. I changed the 1.8 to 2.3.3 and checked it in, did the production build again and it still failed - so that wasn’t the problem.

To get the production build to work, I had to uncheck “Clean”. So now it skips that step. I think I can run this way for a while but something is definitely wrong.

I can send somebody my project file if needed.

@yuit No, MSBuild will import every file it’s asked to. In the expanded project, there can then be sections that overwrite–typically the last one wins (for example, if a Target or a UsingTask is defined), but it’s possible that things just get very confused–for example if a property is conditioned on “not already defined” the first one would win.

from the proj @chrisrpatterson shared with me offline, I think the issues stems from the fact that project imports Microsoft.TypeScript.target files from local and Nuget (and in the case that @chrisrpatterson shares, the local version is 2.1 and Nuget is 2.3). Tasks in 2.1 don’t understand “IsFileSystemCaseSensitive” parameter as we introduce that in 2.3

Possible fix Remove the local import (or Nuget import which ever one you choose). The lines look something like this:

  • local
 <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
  • Nuget - should be near the end of the proj file
 <Import Project="..\packages\Microsoft.TypeScript.MSBuild.2.3.1\build\Microsoft.TypeScript.MSBuild.targets" Condition="Exists('..\packages\Microsoft.TypeScript.MSBuild.2.3.1\build\Microsoft.TypeScript.MSBuild.targets')" />

@rainersigwald question - when files with same name imported twice, does MSBuild cache the first import and so the second won’t get execute?

@yuit I have a proj file from another customer who is hitting this issue. What is your alias so I can email it to you.

I don’t have access to the project file, I work on VSTS. I was just responded to what we currently have installed on the hosted pool.