Visual studio VisualStudio认为一切都是一种类型脚本资源

Visual studio VisualStudio认为一切都是一种类型脚本资源,visual-studio,cordova,typescript,visual-studio-2015,win-universal-app,Visual Studio,Cordova,Typescript,Visual Studio 2015,Win Universal App,我正在使用Cordova构建一个应用程序,我正在尝试构建一个Windows应用程序。使用Cordova CLI没有产生任何好的结果,因此我尝试在platforms/windows文件夹中构建Visual Studio解决方案 问题在于,它无法构建并返回一长串错误,所有这些错误都与以下内容类似: TS6054Build:File'C:/Code/ProjectClosr/Cordova App/platforms/windows/www/Gruntfile.js的扩展名不受支持。这个 仅支持的扩展

我正在使用Cordova构建一个应用程序,我正在尝试构建一个Windows应用程序。使用Cordova CLI没有产生任何好的结果,因此我尝试在platforms/windows文件夹中构建Visual Studio解决方案

问题在于,它无法构建并返回一长串错误,所有这些错误都与以下内容类似:

TS6054Build:File'C:/Code/ProjectClosr/Cordova App/platforms/windows/www/Gruntfile.js的扩展名不受支持。这个 仅支持的扩展名为“.ts”、“.tsx”、“.d.ts”

现在,事实证明,它认为所有这些文件都是TypeScript文件,即使它们只是自述文件、JavaScript文件、CSS文件等。它这样做是因为出于某种原因,它们属性中的所有文件都将“Package Action”设置为TypeScriptCompile。现在,我没有创建这个解决方案,显然,它是由Cordova自动生成的,但我需要一种方法来解决这个问题,通过某种方式将它们的“Package Action”属性设置回它们的真实值,而不是将所有内容都设置为TypeScript资源

我该怎么做呢

这是因为出于某种原因,属性中的所有文件都将“Package Action”设置为TypeScriptCompile


只需删除
看起来您在使用通配符添加的文件夹中的某处有一个TypeScript文件。不知道为什么,但是MSV将文件夹中提供的通配符找到的所有文件的内容类型更改为类型脚本编译

在我的例子中,我在
www\lib\angular ui router\api
中有
angular ui router.d.ts
文件

通过在CordovaApp.projitems文件中添加排除指令解决:

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


还要注意,应该从路径中删除$(MSBuildThisFileDirectory),因为它神奇地打破了这个窍门。

@Pavel Kozlov的解决方案对我来说非常有效

如果使用Cordova,可以使用以下脚本自动完成:

/reset\u windows.sh

cordova platform rm windows
cordova platform add windows
sed -i '9s/.*/        <Content Include="www\\**" Exclude="**\\*.ts" \/>/' platforms/windows/CordovaApp.projitems
cordova平台rm窗口
cordova平台添加窗口
sed-i'9s/*/'平台/windows/CordovaApp.projitems
确保要替换的旧行实际上是第9行,如命令开头的
9s
所示。

根据,您应该在tsconfig.json中设置“allowJs”:true以允许.js扩展

希望这有帮助

"compilerOptions": {
    "noImplicitAny": false,
    "noEmitOnError": true,
    "removeComments": false,
    "sourceMap": true,
    "target": "es5",
    "outDir": "./scripts/",
    "allowJs": true
  }

嗯,我试着用TypeScriptCompile查找任何地方,唯一有它的文件是CordovaApp.projitems,而不是解决方案文件,行看起来像这样-。但是,在更改它并重新加载解决方案之后,它似乎不起作用,在保存解决方案时,它甚至将该行还原回来。它还看起来我无法手动更改每个文件的包操作-它会立即还原回TypeScriptCompile。删除
节点可以修复问题,但也会从项目中删除文件,因此,您必须手动将它们重新添加为现有项,然后VS正确添加它们,而不将它们标记为TS。为此,我撞了好几天的头。你真是个天才!这对我在为windows平台构建cordova应用程序时起到了作用。谢谢