Visual Studio считает, что все является ресурсом TypeScript

Я использую Кордову для создания приложения, и я пытаюсь создать приложение для Windows. Использование CLI Cordova не принесло никаких хороших результатов, поэтому я попытался создать решение Visual Studio в папке platform/windows.

Проблема заключается в том, что он не создает и возвращает длинный список ошибок, все из которых довольно просто говорят что-то похожее на это:

TS6054 Сборка: файл 'C:/Code/ProjectClosr/Cordova Приложение/платформы/windows/www/Gruntfile.js 'имеет неподдерживаемое расширение. только поддерживаемые расширения: ".ts", ".tsx", ".d.ts".

Теперь выясняется, что все эти файлы являются файлами TypeScript, хотя они являются только файлами Readme, JavaScript, CSS файлами и т.д., и это происходит потому, что по некоторым причинам все эти файлы в своих свойствах "Действие пакета" установлено на TypeScriptCompile. Теперь я не создал это решение, очевидно, он был автогенерирован Кордовой, но мне нужен способ исправить это, каким-то образом установив свойство "Действие пакета" для всех их обратно в их реальные значения, вместо того, чтобы все было TypeScript ресурс.

Как я могу это сделать?

Ответ 1

Похоже, у вас есть файл TypeScript где-то внутри папки, которую вы добавляете, с помощью шаблона. Не знаю, почему, но MSVS изменяет Контент на TypeScriptCompile для всей группы файлов, найденных под шаблоном, который вы предоставляете внутри папки.

В моем случае у меня был angular-ui-router.d.ts файл внутри www\lib\angular-ui-router\api.

Решено, добавив директиву Исключить в файле CordovaApp.projitems:

<Content Include="www\**" Exclude="**\*.ts" />

Также обратите внимание, что $(MSBuildThisFileDirectory) следует удалить из пути, так как он волшебным образом нарушает трюк.

Ответ 2

и это происходит потому, что по какой-то причине все эти файлы в своих свойствах имеют значение "Действие пакета", установленное в TypeScriptCompile.

Просто удалите ключи <TypeScriptCompile ... из решения путем необработанного редактирования. Вероятно, они уже присутствуют как <Content ..., что вам нужно.

Ответ 3

@Решение Павела Козлова отлично работало для меня.

Если вы используете Кордову, вы можете использовать следующий script, чтобы сделать это автоматически:

./reset_windows.sh

cordova platform rm windows
cordova platform add windows
sed -i '9s/.*/        <Content Include="www\\**" Exclude="**\\*.ts" \/>/' platforms/windows/CordovaApp.projitems

Убедитесь, что старая строка, которую вы хотите заменить, на самом деле является строкой 9, поскольку 9s говорит в начале команды.