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

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:
Actual behavior:
Microsoft.TypeScript.targets file, see above@yuit any thoughts here
Same issue
@mhegazy @yuit any updates or work-arounds? VSTS Hosted builds are broken for my team as a result of this.
@rposener @sleepydada @acshef could you guys share the project file ? from the error reported, it seems that the tasks and target get mismatched... also could you share what is installed on VSTS (or TFS in @acshef 's case) hosted build
@yuit we have VS 2017 15.1 with all components installed on the hosted VMs.
@chrisrpatterson thanks! Would it be possible to see the project file ?
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.
For the original issue, I will confirm once I get a proj file but at the moment I have a speculation that the target file is from Nuget which is 2.3 pick up tasks from the build agent which if you are using 2017 15.1 will be 2.1
@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.
@yuit This definitely looks like a mismatch between the UsingTask and the target that invokes it in the MSBuild. Looks like the UsingTask is older.
You could potentially debug by using the MSBuild preprocessor to see the fully expanded project.
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:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
<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 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.
I have issue a fix in our private repo to address this issue going forward. Feel free to reopen the issue if you still run into them
I attempted to upgrade a Visual Studio solution from Typescript 2.2 to 2.3 and ran into these build errors:
6>C:\path\to\my\project\Project.Name\Source\packages\Microsoft.TypeScript.MSBuild.2.3.1\tools\net45\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.
6>C:\path\to\my\project\Project.Name\Source\packages\Microsoft.TypeScript.MSBuild.2.3.1\tools\net45\Microsoft.TypeScript.targets(179,5): error MSB4063: The "FindConfigFiles" task could not be initialized with its input parameters.
The only thing I changed was updating the Nuget packages for Microsoft.TypeScript.Compiler and Microsoft.TypeScript.MSBuild. No other changes.
Same here. After upgrading to 2.3.x the IsFileSystemCaseSensitive and FindConfigFiles fails.
So it sounds like the solution (from what I'm reading here) is to just wait until Typescript 2.3.3 is released? is this correct?
the 2.3.3 release fixed the issue for me. I am now able to use this latest version!
Is not fixed for me with the 2.3.3 release
I use Visual Studio Community 2017 15.2 (26430.6)
***\packages\Microsoft.TypeScript.MSBuild.2.3.3\tools\Microsoft.TypeScript.targets(182,8): error MSB4064: Der "IsFileSystemCaseSensitive"-Parameter wird von der "FindConfigFiles"-Aufgabe nicht unterst眉tzt. Vergewissern Sie sich, dass der Parameter in der Aufgabe vorhanden ist und es sich um eine festlegbare 枚ffentliche Instanzeigenschaft handelt.
***\packages\Microsoft.TypeScript.MSBuild.2.3.3\tools\Microsoft.TypeScript.targets(179,5): error MSB4063: Die "FindConfigFiles"-Aufgabe konnte nicht mit ihren Eingabeparametern initialisiert werden.
my tsconfig.json
{
"compileOnSave": true,
"compilerOptions":
{
"allowJs": true,
"allowUnreachableCode": false,
"diagnostics": true,
"forceConsistentCasingInFileNames": true,
"listEmittedFiles": true,
"listFiles": false,
"module": "amd",
"noFallthroughCasesInSwitch": false,
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitUseStrict": false,
"noImplicitThis": false,
"noUnusedLocals": false,
"noUnusedParameters": true,
"preserveConstEnums": false,
"pretty": true,
"removeComments": false,
"sourceMap": true,
"strictNullChecks": false,
"suppressExcessPropertyErrors": false,
"suppressImplicitAnyIndexErrors": false,
"traceResolution": false,
"target": "es5"
},
"files":
[
***
]
}
Please share a build log.
ping @mhegazy
Have found a solution?
Sorry, have not had time to investigate this further.
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.
Hello guys, i think i have found the possible problem, the build tasks use different TypeScript.Task.dll
For CheckFileSystemCaseSensitive it used
\packages\Microsoft.TypeScript.MSBuild.2.3.3\build\\..\tools\net45\TypeScript.Tasks.dll
For FindConfigFiles it used
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\VisualStudio\v15.0\TypeScript\TypeScript.tasks.dll
hope that helps
in your project file, do you have multiple imports for ts targets ?
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
Yup, I can confirm that we too had multiple targets when we had that error and removing all except one helped.
Looking at the imports for my project, it looks like they aren't correct because they include ..\Packages\Microsoft.Typescript for some and $(MSBuildExtensionsPath32) for others. Here are all the import statements from my project file that include Typescript somewhere on the line. They appear in this order in the file too.
I am not sure if they are duplicates since they all refer to different files
Should I remove the ones that don't reference ..\Packages?
<Import Project="..\packages\Microsoft.TypeScript.MSBuild.2.3.3\build\Microsoft.TypeScript.MSBuild.props" Condition="Exists('..\packages\Microsoft.TypeScript.MSBuild.2.3.3\build\Microsoft.TypeScript.MSBuild.props')" />
<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')" />
<Import Project="..\packages\Microsoft.TypeScript.MSBuild.2.3.3\build\Microsoft.TypeScript.MSBuild.targets" Condition="Exists('..\packages\Microsoft.TypeScript.MSBuild.2.3.3\build\Microsoft.TypeScript.MSBuild.targets')" />
@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)
@Dark-Water
thank you. I will remove those extra imports and see if I can restore the Clean setting on VSO.
i have a project made by vs 2013 and now i try to use it, in the vs 2015 and this error show to me too. What do you do to solve this problem?
@alvesa
Looking in your project file (e.g. *.csproj) and looking for
<import> ... Microsoft.TypeScript.Default.props<import> ... Microsoft.TypeScript.targetsyou need only
Microsoft.TypeScript.Default.props andMicrosoft.TypeScript.targetsboth from the same root path
typical ..\packages\Microsoft.TypeScript.MSBuild.x.x.x\build\
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?
@bartread
Can you share a detailed build log?
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\packagesMicrosoft.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.
The FindConfigFiles task use the wrong file path (in your case) .
Have look at all project files inside the solution(s)?
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\packagesMicrosoft.TypeScript.MSBuild.2.5.2\toolsMicrosoft.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\packagesMicrosoft.TypeScript.MSBuild.2.5.2\toolsMicrosoft.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?
Most helpful comment
@gregveres
Yes you can delete these imports
You need one
.propsand one.target(from the same package)