7

我正在为 3 台智能电视编写一个统一的项目。我还创建了 3 个配置Visual Studio。现在我想CLI根据所选配置执行一些脚本。

问题出在新ASP.NET 5项目中,我没有用于后期构建事件的编辑器。

我知道我必须在project.json. 我发现的是:

  "scripts": {
    "postbuild": ""
  }

但是使用这个我不能CLI为不同的配置创建不同的脚本。

我还发现:

  "configurations": {
  },

我想这可能是我想要的,但是......如何使用它?Intellisense 在这里没有能力,而且我在网上搜索也不幸运......

[编辑]

也许我应该试试.xproj

4

2 回答 2

14

您需要构建一个主脚本,该脚本使用可用的上下文和环境变量来切换和运行您选择的其他脚本。

除了此处用于编译的变量列表之外,您还可以获取这些用于发布相关脚本的变量,然后这些变量随处可用,由 返回的环境变量也是Environment.GetEnvironmentVariable如此,可以在此处看到。

下图显示了来自 VS2015 Update 3 RTM 的智能感知,但它具有误导性,因为您会根据所使用的脚本块获得其他信息:

在此处输入图像描述

因此,可用于控制脚本中的流的上下文变量的完整列表是:

每个脚本块:

  • %项目:目录%
  • %项目名%
  • %项目:版本%

编译具体:

  • %编译:目标框架%
  • %编译:FullTargetFramework%
  • %编译:配置%
  • %编译:输出文件%
  • %编译:输出目录%
  • %编译:响应文件%
  • %compile:RuntimeOutputDir%(仅在有运行时输出时可用)
  • %compile:RuntimeIdentifier%(仅在有运行时输出时可用)
  • %comiple:CompilerExitCode%(仅在后编译脚本块中可用)

具体发布:

  • %发布:项目路径%
  • %发布:配置%
  • %发布:输出路径%
  • %发布:目标框架%
  • %publish:FullTargetFramework%
  • %发布:运行时%
于 2016-07-12T21:52:49.110 回答
5

我对此进行了一些调查,但并没有真正得到任何好的结果。

脚本中公开了一些项目变量。不幸的是,这些非常有限

  • %project:Name%给你项目名称
  • %project:Directory%给你项目目录
  • %project:Version%给你项目版本

所以这里没有办法访问构建配置或环境。

中的configurations选项project.json也仅限于构建配置,并且只允许在那里声明编译选项,因此这也不起作用。

不幸的是,似乎也没有其他方法可以解决这个问题。至少不是现在。我会考虑自己向 DNX 发送一个拉取请求,以添加一些可以使用的额外项目变量,但目前,在 DNX 上投入时间并没有任何意义:毕竟它已被 dotnet CLI 取代。我们将看看它是否带有访问环境的功能——如果没有,我可能最终会提交一个拉取请求来添加这个功能。但在我们到达那里之前,恐怕没有解决办法。

于 2016-02-10T09:37:44.473 回答