TypeScript文件无法编译到.NET core 2.0测试项目

时间:2018-02-28 11:43:11

标签: typescript visual-studio-2017

我在VS2017中有一个解决方案,它可以在Web项目(.net core 2.0)中编译TS文件,但不能在测试项目(.net core 2.0)中编译。

这是设计吗?

我无法在网络项目中找到任何设置'自动编译TS文件' (VS2017是否可以直接编译TS文件?),因此我无法检查测试项目上的设置是打开还是关闭。

EDIT 我确实发现这个网络项目有一个标签&<39; typescript build&#39;在项目的属性中,测试项目没有。 所以我猜这意味着testproject不适用于打字稿构建;但它能成为它吗?

我不想将我的测试项目更改为webproject我想,只是为了让它编译TypeScript文件。

1 个答案:

答案 0 :(得分:1)

编译由导入项目的target个文件指导。如果您打开Web项目文件(将.csproj打开为xml),您将看到使用的sdk为Microsoft.NET.Sdk.Web,而对于单元测试项目,sdk为Microsoft.NET.Sdk。这些SDK指向c:\Program Files\dotnet\sdk\2.1.4\Sdks\中的文件夹(或等效,具体取决于您的设置),这些文件夹将用于默认导入项目。

如果我们稍微深入了解与Typecript相关的Microsoft.NET.Sdk.Web所包含的内容,我们会发现以下内容:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets') AND '$(EnableTypeScriptNuGetTarget)' != 'true'" />

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.DotNetCore.targets" Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.DotNetCore.targets') AND '$(EnableTypeScriptNuGetTarget)' != 'true'" />

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />

如果我们在单元测试项目文件(Project)中的.csproj标记内添加这些行,我们将包含Typescript的必要构建步骤。您还将获得项目中的Typescript属性页。

注意我没有对此进行过广泛测试,但它似乎有用,如果您有任何问题,请告诉我。