NO JSON文件与特定模式匹配:appsettings.json

时间:2017-06-22 18:24:04

标签: tfs msbuild azure-devops

我在Team Services版本上遇到此错误。我怀疑这个错误发生了因为我生成了一个压缩的工件。

MSBuild配置:

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactstagingdirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"

然后在我的版本中尝试替换appsettings.json变量:

replace file

因此,工件是一个zip文件,可能是因为发布管理没有找到appsettings.json文件。但是处理它的方法是什么?构建一个没有压缩的工件?

3 个答案:

答案 0 :(得分:5)

这对我有用:

{{1}}

json文件根据代理的位置以及MSBuild如何将其打包来深埋在一条很长的路径中...它不在“根”。

例如,我的json文件位于WebApp.zip文件中的此文件夹中:

  

WebApp.zip \内容\ C_C \构建\代理\ agent_work \ 3 \ S \ CrmsAngularPOC \ OBJ \发布\ netcoreapp1.1 \ PubTmp \缺货

答案 1 :(得分:2)

如果您的源文件夹是$(System.DefaultWorkingDirectory)/ _ SOURCE_FOLDER_ / artifacts

您可以使用“ appsettings.json”

但是如果您的源文件夹是$(System.DefaultWorkingDirectory)/ _ SOURCE_FOLDER _

您可以使用“ ** / appsettings.json”

答案 2 :(得分:0)

您应该使用JSONPath表达式来指定要替换Json变量替换选项的变量。

详细使用 JSON变量替换,如下所示:

  

提供新的行分隔的JSON文件列表来替换   变量值。文件名将相对于根提供   夹。要替换嵌套或分层的JSON变量,   使用JSONPath表达式指定它们。

     

例如,要替换“ConnectionString”中的值   下面的示例,您需要将变量定义为   构建/发布中的“Data.DefaultConnection.ConnectionString”   定义(或发布定义的环境)。

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
    }
  }
}
     

在配置转换后运行变量替换。

     

注意:不包括Build / Release的系统定义变量   取代