Kompilacja maszynopis kod błędu z zestawu Get „zakończył działanie kodu 1”

głosy
13
get topLeft()      { return this._topLeft;             }

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

Powyższe prace kod znaleźć w maszynopisie Play, ale dostałem błąd kompilacji podczas kompilowania go z Visual Studio 2012 error exited with code 1

Czy ktoś spróbować dostać, należy ustawić w maszynopisie i zbudować z powodzeniem?

Utwórz 07/10/2012 o 17:08
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
19

Musisz kierować ECMAScript v5, czyli przekazać -target ES5argument do kompilatora. To musi być ustawiony w konfiguracji docelowej pliki projektu.

Nie wiem, czy VS ma żadnych wbudowanych w mechanims do edycji konfiguracje docelowych, więc mogę tylko powiedzieć, jak to zrobić ręcznie. Wystarczy otworzyć .csprojplik projektu, spojrzeć na Targetwęźle, w którym polecenie maszynopis kompilator znajduje, i dodać -target ES5argument.

W moim config wygląda to tak:

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

Aktualizacja

Począwszy od wersji 0.8.1.0 The ustalony zależność wersji usunięto i dodano wsparcie dla map źródłowych, a więc Targetwęzeł teraz wygląda to domyślnie:

<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>

Wstrzykiwanie targetargumentem jest nadal całkiem proste, wystarczy umieścić go po tsclub $(TypeScriptSourceMap):

<Message Text="Executing tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
<Exec Command="tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
Odpowiedział 07/10/2012 o 18:07
źródło użytkownik

głosy
9

Począwszy od 0.8.2 miał kolejną zmianę. Niektóre wspólne maszynopis kompilacji rzeczy został przeniesiony z .csproj do zewnętrznego pliku kompilacji. Tak:

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

Twój .csproj nadal dostaje ustawić kilka argumentów na budowie maszynopis poprzez włączenie ich jako elementów w budowie. jeden z tych elementów jest wersja ES. Szablon stworzony dwie grupy dla mnie, jeden dla debugowania i jeden dla wydania:

  <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>

za pożądany efekt wystarczy zmienić ES3 do ES5

Dla głębszego zrozumienia, jak to ostatecznie kończy się w ramach zaproszenia do kompilatora maszynopis mają wyglądać w pliku Microsoft.TypeScript.targets.

Powodzenia,

Odpowiedział 04/03/2013 o 13:17
źródło użytkownik

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