我正在使用安装了Update 3的Visual Studio 2015。我有一个包含用TypeScript编写的Angular 2应用程序的解决方案。通过遵循Angular自己的" 5分钟快速启动"该应用程序已添加到解决方案中。指南:https://angular.io/guide/quickstart
角度应用甚至还没有完成,实际上它几乎没有开始开发。 angular 2项目的所有配置文件都是直接从该指南中获取的,并且未经过修改。
该解决方案在我的本地计算机上构建得很好。但是,当我执行启动构建的TFS签入时,解决方案无法在远程构建服务器上构建。
我在MSBuild步骤中遇到以下错误,并且它们与所有与TypeScript相关:
大多数错误都会重复多次,指向角度2 app的各个部分。总共有29个错误。
有趣的是,构建日志中的每个错误都会跟随对包含角度应用程序的.csproj文件的引用。
据我了解,应该根据tsconfig.json文件中定义的配置属性编译TypeScript文件,而不是Visual Studio项目的属性。实际上,当我在本地打开解决方案并尝试从Visual Studio中的属性修改TypeScript配置时,它会告诉我由于tsconfig.json文件存在而禁用了这些属性。
同样,一切都在本地构建良好,零错误。它只能在远程构建服务器上构建。
那么有人有任何想法吗?远程构建服务器可能不是最新的,因此不能读取我的tsconfig.json文件吗?
只是为了彻底,这是我的tsconfig.json文件......
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
},
"compileOnSave": true
}
修改
更新:好的,我想我正在缩小这个问题。似乎在TFS构建中我的tsconfig.json肯定没有被读取。
这是我在本地运行MSBuild时的日志...
PreComputeCompileTypeScriptWithTSConfig:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe --project "C:\[MY PATH GOES HERE]\tsconfig.json"
CompileTypeScriptWithTSConfig:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe --project "C:\[My PATH GOES HERE]\tsconfig.json"
但这是远程TFS构建中发生的事情......
PreComputeCompileTypeScript:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.5\tsc.exe --sourcemap --target ES5 --noEmitOnError COMPUTE_PATHS_ONLY
CompileTypeScript:
C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.5\tsc.exe --sourcemap --target ES5 --noEmitOnError
所以...我的构建服务器使用TypeScript 1.5,而本地我有1.8。当然,1.8是在Visual Studio中引入了对tsconfig.json的改进支持。希望我所要做的就是让某人更新TFS服务器上的TypeScript。
答案 0 :(得分:1)
您最好确保构建服务器(构建代理)上的环境与本地环境相同。这将大大降低构建失败的风险。
在您的情况下,尝试将TypeScript 1.5 更新为版本 1.8 并再次对构建进行排队。如果它仍然不起作用,您可以尝试在构建代理(机器)上手动构建,而不是通过tfs来缩小与代理环境或TFS构建定义设置相关的问题。