正如标题所示:我已通过Tools
>激活此选项Options
> Web Essentials
窗口,但文件未在构建时编译。没有任何警告或错误,专用于Web Essentials的“输出”面板显示有关编译内容的消息,但实际上并未执行任何操作。实际上没有编辑出现在输出中的那些文件。
有没有办法找出它到底在做什么?我已经对项目文件进行了手动修改。我没有在项目文件中看到任何与Web Essentials相关的内容。
有没有其他方法可以解决这个问题?
答案 0 :(得分:6)
即使使用WebEssentials来控制是否应该在构建工作中编译所有文件,它也可能会带来一些问题:
如果您正在使用构建机器,与TFS等持续集成,则构建过程将不会应用相同的规则,因为WebEssentials是Visual Studio扩展,并且构建过程无法访问; < / p>
您需要重建项目以测试您的更改,除非您还将WebEsentials选项“在保存时编译TypeScript”设置为true,如果您在构建期间也进行编译,那么可能有点多余; < / p>
解决方案:
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
.
.
.
<Import Project="$(VSToolsPath)\TypeScript\Microsoft.TypeScript.targets" />
这足以确保在构建期间使用默认选项调用TypeScript编译器来构建所有.js文件。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
.
.
.
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptIncludeComments>false</TypeScriptIncludeComments>
<TypeScriptSourceMap>false</TypeScriptSourceMap>
</PropertyGroup>
此设置还允许您为每个项目设置不同的设置,这有利于提高灵活性。
在构建过程中,将使用当前构建定义中定义的设置调用TypeScript编译器。例如,在上面的设置中将TypeScriptTarget设置为ES5时,执行的命令行将类似于
tsc.exe --target ES5
请注意,只会处理标有BuildAction = TypeScriptCompile的文件。 您可以在解决方案资源管理器,属性面板中检查/更改文件的BuildAction: