如何获取Visual Studio 2017以在类库项目的构建中编译TypeScript(新的.net核心样式.csproj)

特里格夫

当前运行VS 2017 15.3.5和Typescript 2.5.2 SDK。如何使TypeScript在构建(常规MSBuild)上进行编译。csproj是新的“ .net核心样式”,项目类型是类库。

特里格夫

在这里看到两个好的答案之前,这是我尝试的方法:

首先尝试添加谷歌搜索时发现的.csproj的某些部分,并查看“旧的” csproj文件(在转换为新的VS2017 / .net核心样式之前)

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

当我关闭解决方案并重新打开时,系统向我提出了有关该项目的TypeScript版本的问题,该问题设置为2.3,但是2.5可用,并且是否要升级该项目。我回答是。现在,我在项目属性中获得了TypeScript Build选项卡,它可以正确识别tsconfig.json文件。

我希望在build上编译现在可以,但是没有。

我还补充说:

    <TypeScriptToolsVersion>2.5</TypeScriptToolsVersion>

到.csproj文件中的第一个PropertyGroup。这实际上也没有任何作用。

然后尝试添加:

<ItemGroup>
  <TypeScriptCompile Include="src\sourcefile.ts" />
</ItemGroup>

与TypeScriptCompile元素一起编译的所有文件。没运气。

由于我已经在项目中设置了Gulp(实际上是从Gulp使用MSBuild来编译打字稿),所以我决定从从Gulp调用的MSBuild切换到在Gulp任务中使用NPM模块“ typescript”和“ gulp-typescript” :

已删除:

gulp.task("Build", function () {
return gulp.src('./' + packageName + '.csproj')
    .pipe(msbuild(
        {
            stderr: true,
            stdout: true,
            toolsVersion: 15.0
        }));
});

添加:

var tsProject;
gulp.task("CompileTypeScript", ['NameOfAnotherTaskThatThisTaskDependsOn'], function () {
  var ts = require("gulp-typescript");

  if (!tsProject) {
      tsProject = ts.createProject("tsconfig.json");
  }

  var reporter = ts.reporter.fullReporter();
  var tsResult = tsProject.src()
    .pipe(tsProject(reporter));

  return tsResult.js
    .pipe(gulp.dest(""));
});

然后,将“ CompileTypeScript” Gulp任务绑定到Visual Studio中的“构建之前”。效果很好,尽管我想知道是否也可以使用新的csproj格式。

感谢@Balah和@Joshit的好的建议,它们也可能工作得很好。

编辑2018年2月8日:修复了一些拼写错误并更正了相关吞噬任务的名称(与任务名称相同,这当然不起作用)

有关更多信息,请参见本文

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Visual Studio 2017 csproj核心文件排除

如何从Visual Studio扩展和新的csproj格式获取IntermediateOutputPath

Visual Studio 2017,在创建新项目时默认使用新样式的csproj

Visual Studio 2017和新的.csproj InternalsVisibleTo

如何在* .csproj中向.net核心项目添加规则

Visual Studio 2017 csproj .NET Core构建-视图未正确复制

Visual Studio 项目模板支持新的 csproj 格式

当我在Visual Studio Community 2017中创建asp.net项目时,未创建.csproj文件

删除对 csproj Visual Studio 的引用

更改.csproj文件中的MS Visual Studio构建设置

如何在Visual Studio 2017 RC3中获取C#(.net核心)项目目录路径?

如何更改VS 2017 RC .csproj项目的目标框架(从核心到经典)?

Visual Studio 2017 RC如何在csproj文件中指定发布选项

如何在没有.sln或.csproj文件的情况下在Visual Studio 2013中打开/加载asp.net下载的项目

.net核心项目代码覆盖率Visual Studio 2017

在 Visual Studio 2017 中通过 postbuild 事件构建 .net 核心项目

csproj文件Visual Studio中的重复文件

Visual Studio 2013自动签出.csproj

如何使用csproj多目标.NET Core类库?

.net核心(csproj)global.json'项目'等效项

如何在Visual Studio 2017项目(新的.csproj文件格式)中设置`OutputPath`,而目标框架不会使解析路径混乱?

OSX上的Visual Studio Code如何导入sln / csproj并运行?

如何使用新的csproj构建系统在csproj中定义AssemblyProduct

如何在Visual Studio 2015中将c#csproj编译为exe-错误CS0579

Visual Studio 2017无法调试.Net核心Web API?

Visual Studio中ASP.NET核心项目之间的区别

Visual Studio 2017无法更改project.csproj的<TypescriptModuleKind>以进行打字稿转译

在Visual Studio 2017中从.csproj文件创建.nupkg:属性未正确更新

Visual Studio 2017 csproj 在安装包时添加了“奇怪的”文件