仅在发布时发生构建错误

Posted

技术标签:

【中文标题】仅在发布时发生构建错误【英文标题】:Build errors ONLY occur when publishing 【发布时间】:2016-07-18 21:40:27 【问题描述】:

我正在尝试发布我的项目,该项目在我的解决方案中引用了其他项目。

每当我定期构建解决方案时,它构建得很好,没有任何错误。

但是,每当我尝试发布项目时,我都会收到“构建失败”消息。

当我检查输出日志时,我看到以下 3 个错误:

C:\Users\MyUsername\Dropbox\Projects\SEO\QualityLinkBuilder\Web\RealestateJobsMigrations\RealestateJobsConfiguration.cs(10,101,10,124): 错误 CS0234:类型或命名空间名称“RealestateJobsDbContext” 命名空间“RealestateScraper”中不存在(您是否缺少 程序集参考?)

C:\Users\MyUsername\Dropbox\Projects\SEO\QualityLinkBuilder\Web\RealestateJobsMigrations\RealestateJobsConfiguration.cs(18,56,18,79): 错误 CS0234:类型或命名空间名称“RealestateJobsDbContext” 命名空间“RealestateScraper”中不存在(您是否缺少 程序集参考?)

C:\Users\MyUsername\Dropbox\Projects\SEO\QualityLinkBuilder\Web\ViewModels\JobsVm.cs(364,51,364,69): 错误 CS0246:类型或命名空间名称“ClosedRealestateId”可能 找不到(您是否缺少 using 指令或程序集 参考?)

但是,我已经引用了项目“RealestateScraper”,并且类 RealestateJobsDbContext&ClosedRealestateId 存在于“RealestateScraper”项目根名称空间中,该名称已在输出标记错误的位置标记为使用。

(就像我之前所说的,项目在不发布时也可以很好地构建)。

这可能是什么问题? 我已经清理并重建了,但这似乎并没有改变任何东西。

注意:我没有显示带有错误的代码,因为它似乎没有用,因为我正确引用了文件中的程序集(使用 RealestateScraper;

【问题讨论】:

尝试删除已发布的文件夹,我已经看到了这个问题并已解决。这不是一个正确的答案,但它可能会解决您的问题。 我不小心将发布构建平台重置为 x86,而不是任何 CPU。 【参考方案1】:

我也遇到过这种情况-仅在发布期间构建失败。原来我为 azure 发布使用了错误的密码,由于某种原因,我无法解释它会显示构建失败并包含一些构建错误。更正密码后,此问题已解决。

【讨论】:

【参考方案2】:

显然,在 RealestateScraper 项目中,我在一个不再存在的位置引用了另一个项目 .dll。我更新了参考位置并修复了它。

【讨论】:

【参考方案3】:

就我而言,我无法识别错误本身。我刚刚更改了发布属性“预编译”。我取消选中它,然后我就可以发布我的网站了

【讨论】:

【参考方案4】:

我在一个类中有一些编译器 if-then 语句。当我进行本地构建时,这些工作正常,但在发布时它们没有被解释并导致构建错误。我重构了我的代码以删除编译器指令,它现在发布了。

例子:

#if SERVICE
using System.Web
#endif

改为:

using System.Web

【讨论】:

【参考方案5】:

不幸的是,我有相同的未解决问题解决方案 -prog a -prog b 完成了 prog 和解决方案,但是当我去发布时,它给了我错误 c0246 使用在项目 a 中调用的项目 b 帮助

【讨论】:

嘿@francesco!欢迎来到***。我建议您添加此类帖子作为对问题的评论而不是答案。【参考方案6】:

我尝试了所有这些解决方案,它们可能有所贡献,但我仍然收到错误。

我收到了一条警告。我必须使这个文件在项目中不是只读的,然后它才起作用。

\obj\Release\netcoreapp3.0\PubTmp\Out\web.config

【讨论】:

以上是关于仅在发布时发生构建错误的主要内容,如果未能解决你的问题,请参考以下文章

Java“常量字符串太长”编译错误。仅在使用 Ant 时发生,在使用 Eclipse 时不会发生

xcodebuild 错误 - SecKey API 返回:-25308

Retrofit2 和 OkHttp3 仅在发生错误时使用缓存,例如网络错误或达到配额限制

无法加载视图状态。仅在 IE 中发生错误

错误:发送后无法设置标题,仅在刷新页面后发生

编译器错误 - 仅在从命令行编译时