Компиляция машинопись код ошибки с набором ГЭТ «завершался с кодом 1»

голоса
13
get topLeft()      { return this._topLeft;             }

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

Приведенный выше код работает найти в машинописном Play, но я получил сообщение об ошибке сборки при компиляции с Visual Studio 2012 error exited with code 1

Есть ли кто-нибудь попробует получить, установить в машинописном и построить успешно?

Задан 07/10/2012 в 17:08
источник пользователем
На других языках...                            


2 ответов

голоса
19

Вы должны предназначаться ECMAScript v5, т.е. передать -target ES5аргумент компилятора. Это должно быть установлено в файлах проекта целевой конфигурации.

Я не знаю , если VS имеет никакого встроенный в mechanims для редактирования целевых конфигураций, так что я могу только сказать вам , как сделать это вручную. Просто откройте ваш .csprojфайл проекта, обратите внимание на Targetузел , где находится команда машинописи компилятора, и добавить -target ES5аргумент.

В моей конфигурации это выглядит следующим образом:

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

Обновить

В версии 0.8.1.0, то жёстко версия зависимость была удалена и добавлена поддержка карт источников, и поэтому Targetузел теперь выглядит следующим образом по умолчанию:

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

Впрыскивание targetаргумента по - прежнему довольно легко, просто положить его после того, как tscили $(TypeScriptSourceMap):

<Message Text="Executing tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
<Exec Command="tsc --target ES5 $(TypeScriptSourceMap) @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" />
Ответил 07/10/2012 в 18:07
источник пользователем

голоса
9

По состоянию на 0.8.2 была еще одно изменение. Некоторые сборки вещей общей машинописи была перенесено из вашего .csproj во внешний файл сборки. Вот так:

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

Ваш .csproj все еще получает установить некоторые аргументы по машинописи сборки, включив их в качестве элементов в сборке. один из этих элементов является версия ES. Шаблон созданы две группы для меня, один для отладки и один для выпуска:

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

для желаемого эффекта просто изменить ES3 к ES5

Для более глубокого понимания того, как это в конечном итоге заканчивается как часть вызова машинописи компилятор загляните в файл Microsoft.TypeScript.targets.

Удачи,

Ответил 04/03/2013 в 13:17
источник пользователем

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