仅在发布时发生构建错误
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