Je me demande s’il est possible de définir une version spécifique du compilateur TypeScript pour le projet dans Visual Studio. Je pouvais donc configurer un projet pour qu'il utilise toujours la version 1.0, même si de nouvelles versions seraient publiées.
Je sais cela n’était pas possible auparavant et je me demande si les choses ont changé après le passage de TypeScript à la version 1.0.
J'ai remarqué que Visual Studio crée maintenant la propriété <TypeScriptToolsVersion>0.9</TypeScriptToolsVersion>
dans un fichier projet, mais je n'ai trouvé aucune documentation à ce sujet.
Si vous essayez de compiler un projet avec <TypeScriptToolsVersion>0.9</TypeScriptToolsVersion>
à l'aide de TypeScript version 1.0, vous obtiendrez le message d'erreur suivant:
Votre fichier de projet utilise une version du compilateur TypeScript et des outils différente de celle actuellement installée sur cette machine. Aucun compilateur n'a été trouvé dans C:\Program Files (x86)\Microsoft SDK\TypeScript\0.9\tsc.exe. Vous pourrez peut-être résoudre ce problème en modifiant l'élément dans votre fichier de projet.
Cela vous empêche donc de compiler avec une version plus récente. Cependant, il ne met pas le compilateur dans un certain mode de compatibilité 0.9.
Mais si TypeScript 0.9 est installé, il compilera cette version. Alors oui, vous pouvez forcer une version spécifique du compilateur TypeScript en utilisant l'attribut.
Fondamentalement, le <TypeScriptToolsVersion>
modifie le chemin d'accès au compilateur:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\<TypeScriptToolsVersion>\tsc.exe
Je l'ai résolu en ajoutant $(TypeScriptToolsVersion)\
après TypeScript\
dans l'instruction de condition.
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets"
Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\$(TypeScriptToolsVersion)\Microsoft.TypeScript.targets')" />
Version Visual Studio -> VS2013
<PropertyGroup> ...... <IISExpressUseClassicPipelineMode /> <TypeScriptToolsVersion>1.8</TypeScriptToolsVersion> </PropertyGroup>
Nous pouvons exclure la compilation de type script dans Visual Studio en utilisant la ligne ci-dessous dans le fichier csproj.
<TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>
après <TypeScriptToolsVersion>0.9</TypeScriptToolsVersion>
cette ligne.