2016-10-07 1 views
0

J'utilise Visual Studio 2015 Pro, mise à jour 3.projet Visual Studio .NET de base utilise le compilateur v1.8 dactylographiée au lieu de v2.0

Ma question est de savoir comment instruisent VS utiliser la version du compilateur de typescript que je veux utiliser.

VS refuse d'utiliser le compilateur Typescript 2.0, mais utilise 1.8. J'ai installé, via Nuget dans VS, Microsoft.Typescript.Compiler v2.0.3 et Microsoft.Typescript.MsBuild v2.0.3, en vain.

En regardant la sortie détaillée de MSBuild, je vois ce qui suit:

cible "PreComputeCompileTypeScriptWithTSConfig" dans le fichier « C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ tapuscrit \ Microsoft.TypeScript.targets "du projet" C: \ Users [.]. Xproj "(la cible" CompileTypeScriptWithTSConfig "en dépend):

Utilisation de la tâche" VsTsc "de l'assembly" C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ TypeScript \ TypeScript.tasks.dll ".

Tâche "VsTsc" C: \ Program Files (x86) \ Microsoft SDKs \ tapuscrit \ 1.8 \ tsc.exe --project "C: \ Users [...] \ tsconfig.json"

Terminé l'exécution de la tâche "VsTsc".

Cible de construction terminée "PreComputeCompileTypeScriptWithTSConfig" dans le projet "[...] .xproj".

Il semble donc que VS utilise le tsc.exe du Microsoft SDK.

Quelqu'un sait comment demander à VS d'utiliser la version de tsc que je veux utiliser?

+0

Note supplémentaire: Ceci est un projet .Net Core –

Répondre

0

@starain Je vraiment appréciez vos efforts.

Malheureusement, votre suggestion ne fonctionne toujours pas pour moi. MSBuild/VS n'utilise pas le chemin d'environnement pour trouver tsc. Si c'était le cas, il serait déjà trouver la bonne version. Le chemin correct (vers 2.0.3) est déjà dans l'environnement, et le chemin incorrect (vers 1.8) ne l'est pas.

Je n'avais pas vu le lien que vous avez fourni avec Nuget. Ce problème semble au moins être un problème avec l'installation de nuget. Aidé en définissant la sortie MSBuild sur "diagnostic", j'ai réussi à trouver une solution de rechange par moi-même.

Dans le fichier .xproj à l'intérieur <PropertyGroup Label="Globals"> I inséré comme suit:

<TypeScriptToolsVersion>2.0.3</TypeScriptToolsVersion> <TscToolPath>C:\Users\[me]\.nuget\packages\Microsoft.TypeScript.MSBuild\2.0.3\tools\tsc</TscToolPath>

Jusqu'à présent, il fonctionne à merveille sauf pour une chose: IntelliSense semble être encore en utilisant 1.8. Je vais laisser cela pour une question distincte.

Cette solution pourrait facilement, bien sûr, présenter un problème chaque fois que je veux mettre à jour tsc. Mais pour l'instant c'est beaucoup mieux que rien.

0

Vous devez supprimer le projet importé correspondant de votre projet.

  1. clic droit de votre projet dans le projet VS => Décharger
  2. Faites un clic droit à nouveau votre projet dans VS => Modifier XXX.csproj
  3. Supprimer le code:

Microsoft.TypeScript.Default .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')" /> 

Microsoft.TypeScript.targets:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" /> 
  1. (Facultatif) Si ce code ne figure pas dans votre fichier de projet, s'il vous plaît ajouter (en rapport avec le code de l'étape 3)

:

<Import Project="..\packages\Microsoft.TypeScript.MSBuild.2.0.3\build\Microsoft.TypeScript.MSBuild.props" Condition="Exists('..\packages\Microsoft.TypeScript.MSBuild.2.0.3\build\Microsoft.TypeScript.MSBuild.props')" /> 

<Import Project="..\packages\Microsoft.TypeScript.MSBuild.2.0.3\build\Microsoft.TypeScript.MSBuild.targets" Condition="Exists('..\packages\Microsoft.TypeScript.MSBuild.2.0.3\build\Microsoft.TypeScript.MSBuild.targets')" /> 

Pour l'application de base .net, il a un problème avec ce package nuget, la référence de type de fichier dans les projets ASP.NET Core est via les Microsoft.DotNet.Web.targets. Donc, ça ne marchera pas. Vous pouvez vérifier le lien this (la réponse de Paulovbrenk).

Pour utiliser la version supérieure du compilateur tapuscrit, vous pouvez installer Typescript 2.0 et modifier la valeur de chemin variable d'environnement dans le dossier correspondant (C: \ Program Files (x86) \ Microsoft SDKs \ tapuscrit \ 2.0)

+0

Merci pour votre suggestion! Cependant, il s'agit d'un projet .Net Core, donc il n'y a pas de fichier .csproj, plutôt un fichier .xproj, et les lignes que vous avez suggéré de supprimer ne sont pas présentes. Je posterai le contenu du fichier si cela peut aider. –

+0

@DougKent Ceci est le problème lié à ce paquet nugget, j'ai mis à jour ma réponse. –