我在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
变量:
因此,工件是一个zip文件,可能是因为发布管理没有找到appsettings.json文件。但是处理它的方法是什么?构建一个没有压缩的工件?
答案 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的系统定义变量 取代