根据新ASP.NET 5项目中的配置名称构建后事件

时间:2016-02-09 08:55:39

标签: visual-studio asp.net-core post-build-event buildconfiguration

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

问题出现在新ASP.NET 5项目中,我没有编辑后期制作活动的编辑。

我知道我必须在project.json中执行此操作。我找到的是:

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

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

我也找到了:

  "configurations": {
  },

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

[编辑]

也许我应该尝试.xproj

2 个答案:

答案 0 :(得分:13)

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

除了用于编译的变量列表Here之外,还有these用于发布相关脚本,然后these随处可用,{{1}返回的环境变量也是如此},可以看到here

下面的图片显示了VS2015 Update 3 RTM中的智能感知,但它具有误导性,因为根据您正在使用的脚本块获取其他内容:

enter image description here

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

每个脚本块:

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

编译具体:

  • %编译:TargetFramework%
  • %编译:FullTargetFramework%
  • %编译:配置%
  • %编译:OUTPUTFILE%
  • %编译:OutputDir%
  • %编译:ResponseFile%
  • %compile:RuntimeOutputDir%(仅在有运行时输出时可用)
  • %compile:RuntimeIdentifier%(仅在有运行时输出时才可用)
  • %comiple:CompilerExitCode%(仅在后编译脚本块中可用)

发布具体:

  • %发布:ProjectPath%
  • %发布:配置%
  • %发布:OutputPath%
  • %发布:TargetFramework%
  • %发布:FullTargetFramework%
  • %发布:运行%

答案 1 :(得分:5)

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

在脚本中有一些项目变量。不幸的是,这些是very limited

  • %project:Name%为您提供项目名称
  • %project:Directory%为您提供项目目录
  • %project:Version%为您提供项目版本

因此无法在此处访问构建配置或环境。

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

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