这与ERROR on Azure Web App Deployment of a msdeploy package
有很多相似之处我正在运行 msbuild / t:packagepublish ,以使用ARM模板自动部署。模板的相关部分:
"resources": [
{
"name": "MSDeploy",
"type": "extensions",
"location": "[resourceGroup().location]",
"apiVersion": "2015-08-01",
"dependsOn": [
"[concat('Microsoft.Web/sites/', variables('webAppName'))]"
],
"tags": {
"displayName": "webDeploy"
},
"properties": {
"packageUri": "[concat(parameters('_artifactsLocation'), '/', parameters('webDeployPackageFolder'), '/', parameters('webDeployPackageFileName'), parameters('_artifactsLocationSasToken'))]",
"dbType": "None",
"connectionString": "",
"setParameters": {
"IIS Web Application Name": "[variables('webAppName')]"
}
}
}
]
这失败,错误的是没有名为" IIS Web应用程序名称"的属性,我可以从生成的包文件中看到确实没有 parameters.xml 将有一个ASP.NET 4模板。
删除它会给我留下错误:
无法执行操作("创建目录") 指定目录 (" C:\用户\吉姆\应用程序数据\本地\ TEMP \ PublishTemp \ API78 \ wwwroot的&#34)。
很明显,它试图复制本地目录结构。我不确定的是如何/在何处解决这个问题。
我在那里看到msdeploy switch -declareParam ,但我调用 msbuild ,而不是 msdeploy 。我希望有一种方法可以在模板扩展中实现,但是我无法找到关于在那里提供价值的方式/方法的任何文档。
这是利用C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0
中的构建模板答案 0 :(得分:0)
不确定它是否完全适用,但我最近在博客中通过MSBuild使用SetParameters。
https://dotnetcatch.com/2016/04/27/setparameters-via-msbuild-commandline/
摘要:SetParams是一个ItemGroup。 MSBuild.exe命令不支持仅提供ItemGroups属性。我添加了一些MSBuild脚本来接受一个Property并转换为ItemGroup,从而设置了params。