Azure devops AutoParameterizationWebConfigConnectionString在azure devops发布管道中不工作

Azure devops AutoParameterizationWebConfigConnectionString在azure devops发布管道中不工作,azure-devops,azure-pipelines-release-pipeline,azure-pipelines-build-task,azure-pipelines-release-task,Azure Devops,Azure Pipelines Release Pipeline,Azure Pipelines Build Task,Azure Pipelines Release Task,我正在Azure DevOps中为一个新项目设置构建和发布管道。我从一个已经工作了一段时间的现有项目中反映了这一点 问题是连接字符串没有通过XML或发布管道变量替换进行转换 我在构建阶段传递了以下参数: /p:AutoParameterizationWebConfigConnectionStrings=false/p:DeployOnBuild=true/p:WebPublishMethod=Package/p:PackageAsSingleFile=true/p:SkipinValidConf

我正在Azure DevOps中为一个新项目设置构建和发布管道。我从一个已经工作了一段时间的现有项目中反映了这一点

问题是连接字符串没有通过XML或发布管道变量替换进行转换

我在构建阶段传递了以下参数:

/p:AutoParameterizationWebConfigConnectionStrings=false/p:DeployOnBuild=true/p:WebPublishMethod=Package/p:PackageAsSingleFile=true/p:SkipinValidConfiguration=true/p:PackageLocation=“$(build.artifactstagingdirectory)\\”

然而,在这两个项目中,当我使用system.debug=true发布时,我看到以下错误:

默认情况下,Web.config中的ConnectionString属性是参数化的。请注意,转换对connectionString属性没有影响,因为该值在部署期间被“Parameters.xml”或“SetParameters.xml”文件覆盖。可以通过在生成MSBuild包期间设置/p:AutoParameterizationWebConfigConnectionStrings=False来禁用自动参数化

我确实在发布管道上选中了XML转换和XML变量替换框

我一整天都想让它工作,但都没用


有人有其他想法或建议吗?

作为一种解决方法,请尝试通过向项目文件中添加以下字符串来禁用自动参数化,并检查其是否有效。(确保将标记放在正确的位置,如您在场景中提到的:在release build属性组下)


作为一种解决方法,请尝试通过向项目文件中添加以下字符串来禁用自动参数化,并检查其是否有效。(确保将标记放在正确的位置,如您在场景中提到的:在release build属性组下)


您是如何转换设置的?请尝试通过将其添加到项目文件来禁用此功能,并检查其是否有效
@AndyLi MSFT我使用xtd:Transform(Replace)和xtd:Locator(name)设置进行了正常的.NET Framework web配置转换,并将发布管道变量替换到位。我已经按照你在博客上提到的步骤做了,因为我们在其他项目中也做过,没有任何问题。其他项目没有修改项目文件,只使用build参数来禁用参数化,并且似乎工作得很好,至少到目前为止是这样。DevOps在发布时处理这个问题的方式会发生变化吗?@AndyLi MSFT我刚刚尝试添加那个参数,在运行新版本后,在发布中得到了相同的参数化警告。现在我将标记放在了正确的位置,在发布版本属性组下,它按预期工作。我仍然不明白为什么build参数不起作用,但这至少让我明白了。谢谢建议您尝试其他项目/管道,以检查它们是否存在相同的问题。不管怎样,很高兴知道问题已被解除阻止,我已发布了解决方法作为答案,这可能对其他有相同问题的人有益。您是如何转换设置的?请尝试通过将其添加到项目文件来禁用此功能,并检查其是否有效
@AndyLi MSFT我使用xtd:Transform(Replace)和xtd:Locator(name)设置进行了正常的.NET Framework web配置转换,并将发布管道变量替换到位。我已经按照你在博客上提到的步骤做了,因为我们在其他项目中也做过,没有任何问题。其他项目没有修改项目文件,只使用build参数来禁用参数化,并且似乎工作得很好,至少到目前为止是这样。DevOps在发布时处理这个问题的方式会发生变化吗?@AndyLi MSFT我刚刚尝试添加那个参数,在运行新版本后,在发布中得到了相同的参数化警告。现在我将标记放在了正确的位置,在发布版本属性组下,它按预期工作。我仍然不明白为什么build参数不起作用,但这至少让我明白了。谢谢建议您尝试其他项目/管道,以检查它们是否存在相同的问题。不管怎样,我很高兴知道这个问题已经解决了,我已经发布了解决方法作为一个答案,这对其他有同样问题的人是有益的。
<AutoParameterizationWebConfigConnectionStrings>false</AutoParameterizationWebConfigConnectionStrings>