Compilare il codice di errore tipografico con set get "terminato con il codice 1"

voti
13
get topLeft()      { return this._topLeft;             }

set topLeft(value) {  this._topLeft = value; Recalc(); }

I lavori di codice di cui sopra trovano a macchina Play, ma ho ricevuto errore di generazione quando compilarlo da Visual Studio 2012 error exited with code 1

Qualcuno provare ottenere, impostare a macchina e costruire con successo?

È pubblicato 07/10/2012 alle 17:08
fonte dall'utente
In altre lingue...                            


2 risposte

voti
19

Avrete bisogno di indirizzare ECMAScript v5, vale a dire passare l' -target ES5argomento per il compilatore. Questo deve essere impostato nella configurazione di destinazione dei file di progetto.

Non so se VS ha alcun costruito in mechanims per la modifica delle configurazioni di destinazione, quindi posso solo dirvi come farlo manualmente. È sufficiente aprire il .csprojfile di progetto, cercare il Targetnodo in cui si trova il comando dattiloscritto compilatore, e aggiungere la -target ES5tesi.

Nel mio config sembra che questo:

<Target Name="BeforeBuild">
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

Aggiornare

A partire dalla versione 0.8.1.0, la versione hardcoded di dipendenza è stata rimossa ed è stato aggiunto il supporto per le mappe di origine, e così il Targetnodo appare come segue per impostazione predefinita:

<Target Name="BeforeBuild">
    <Message Text="Compiling TypeScript files" />
    <Message Text="Executing tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
    <Exec Command="tsc$(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
</Target>

Iniettando l' targetargomento è ancora piuttosto semplice, è sufficiente mettere dopo tsco $(TypeScriptSourceMap):

<Message Text="Executing tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
<Exec Command="tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
Risposto il 07/10/2012 a 18:07
fonte dall'utente

voti
9

A partire dal 0.8.2 ha avuto un altro cambiamento. Alcune delle cose costruzione comune dattiloscritto è stato spostato dal .csproj a un file accumulo esterno. Così:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" />

Il tuo Csproj ottiene ancora per impostare alcuni argomenti sulla costruzione dattiloscritto inserendole come elementi nella build. uno di questi elementi è la versione ES. Il modello ha creato due gruppi per me, uno per il debug e uno per il rilascio:

  <PropertyGroup Condition="'$(Configuration)' == 'Debug'">
    <TypeScriptTarget>ES3</TypeScriptTarget>
    <TypeScriptIncludeComments>true</TypeScriptIncludeComments>
    <TypeScriptSourceMap>true</TypeScriptSourceMap>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Release'">
    <TypeScriptTarget>ES3</TypeScriptTarget>
    <TypeScriptIncludeComments>false</TypeScriptIncludeComments>
    <TypeScriptSourceMap>false</TypeScriptSourceMap>
  </PropertyGroup>

per l'effetto desiderato basta cambiare l'ES3 per ES5

Per una più profonda comprensione di come questo alla fine finisce per diventare parte della chiamata al compilatore dattiloscritto dare un'occhiata nel file Microsoft.TypeScript.targets.

In bocca al lupo,

Risposto il 04/03/2013 a 13:17
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more