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
говорит в начале команды.