Typescript 是否在VS2019解决方案/MSBuild中重写tsconfig.json?

Typescript 是否在VS2019解决方案/MSBuild中重写tsconfig.json?,typescript,msbuild,visual-studio-2019,tsconfig,Typescript,Msbuild,Visual Studio 2019,Tsconfig,我有一个VisualStudio解决方案(而不是VS代码),其中包含多个tsconfig.json文件,我希望这些文件在生产中表现不同 我想要两个文件(可能更多),比如: tsconfig.json此部分解决方案的默认设置: { “编译器选项”:{ “源地图”:正确, “removeComments”:false, ... }, …更多设置 } tsconfig.release.json覆盖这些设置以排除注释和源映射: { “扩展”:“/tsconfig.json”, “编译器选项”:{ “s

我有一个VisualStudio解决方案(而不是VS代码),其中包含多个tsconfig.json文件,我希望这些文件在生产中表现不同

我想要两个文件(可能更多),比如:

  • tsconfig.json
    此部分解决方案的默认设置:
  • {
    “编译器选项”:{
    “源地图”:正确,
    “removeComments”:false,
    ...
    },
    …更多设置
    }
    
  • tsconfig.release.json
    覆盖这些设置以排除注释和源映射:
  • {
    “扩展”:“/tsconfig.json”,
    “编译器选项”:{
    “sourceMap”:false,
    “removeComments”:真
    }
    }
    

    如何告诉VS2019/MSBuild在进行发布构建或发布时使用
    tsconfig.release.json
    覆盖?

    我已经找到了一种方法,但这很可怕,我很乐意接受一个更好的答案

    tsc
    可以采用自定义配置文件名,但只有将
    true
    添加到项目文件并添加其他内容以运行它,才能从MSBuild运行它

    MSBuild可以为Release和Debug提供不同的选项,但前提是它拥有所有Typescript配置,并且项目中的任何位置都没有名为
    tsconfig.json
    的文件

    MSBuild可以在任何文件夹深度找到任何
    tsconfig.json
    ,但找不到任何其他文件名-
    tsconfig.release.json
    tsconfig.debug.json
    已退出

    MSBuild还可以更改其包含的文件的规则,因此解决方案:

    • 将发布覆盖移动到文件夹中,使
      tsconfig.release.json
      变为
      releaseConfig/tsconfig.json
      。现在需要一些相对路径来查找项目:
    {
    “扩展”:“./tsconfig.json”,
    “编译器选项”:{
    “sourceMap”:false,
    “removeComments”:真
    },
    “包括”:[“../****”]
    }
    
    • 接下来,我们需要对
      .csproj
      文件进行两次更改。首先,我们阻止在非发布版本中获取此配置:
    
    
    • 最后,在发布版本中,我们交换文件:
    
    

    默认的
    tsconfig.json
    已从
    中删除,但必须是
    ,因此
    releaseConfig\tsconfig.json
    中的相对路径仍然可以找到它。

    既然您有解决此问题的方法,我建议您可以标记自己的答案:)@PerryQian MSFT是的,我必须先等2天:-)