MSBuild 在调试配置中工作,但在 azure devops 中发布失败

Posted

技术标签:

【中文标题】MSBuild 在调试配置中工作,但在 azure devops 中发布失败【英文标题】:MSBuild works in Debug Configuration but fails in release in azure devops 【发布时间】:2019-07-26 10:31:46 【问题描述】:

我正在尝试在 azure devops 中为我的项目创建一个 CI/CD 管道,现在这个项目有多个依赖项,并且都在解决方案中。 当我使用带有配置集的 MSBuild 来调试构建时,构建工作正常,但是当我将配置设置为发布时,它会引发以下错误 “名称空间 'TS' 中不存在类型或名称空间名称 'CommonUtils'”现在只是为了澄清项目的名称是 TS.CommonUtils 但不知何故,在构建发布时,这件事正在考虑 TS 和 CommanUtils 不同。

【问题讨论】:

检查包含该引用的 .csproj 文件的内容,您可能会注意到您的引用具有构建配置为“调试”的条件 如何引用 TS.CommonUtils 程序集? 【参考方案1】:

获得一个可以在调试模式下完美构建的项目,但 不处于释放模式

对于您的问题,已经有贡献者在另一种情况下给出了解决方法。您可以检查以下内容:

-- type XXX is only used in release (#if !DEBUG for example) and you are missing a reference to it or a using directive

-- your reference has a condition in your project file enabling it only for debug

详情请参考case。

【讨论】:

你是对的,我可以看到在 csproj 中的引用是这样的 ..\TS.CommonUtils\bin\Debug\TS.CommonUtils。 dll 我怎样才能使它有条件?这样我就可以释放路径应该是 bin/Release/TS.CommonUtils.dll

以上是关于MSBuild 在调试配置中工作,但在 azure devops 中发布失败的主要内容,如果未能解决你的问题,请参考以下文章

将 Trace 数据保存到存储在发布后无法在 Azure 中工作,但在开发环境中工作

Rotativa 在本地主机中工作,但在我的 Azure Web 应用程序中无法工作 - 2021

OpenGL 和 SDL '#version required and missing' 但在调试中工作

Flutter(Web)提供程序不在发布模式下工作,但在调试中工作

如何在 Azure Devops 中使用 msbuild 创建具有发布和调试配置的 nuget 文件

Axios Post 在调试中工作,但在 Android 发布版本中出现“网络错误”