build - 为什么在发布模式下构建失败?
问题描述
我在 VS2017 中有一个 C# MVC Web 应用程序,它引用了两个库项目 Crd.Core 和 Crd.Data。这两个库都引用了我存储在解决方案级别文件夹中的相同第三方 dll。在调试中一切正常。在 Release Crd.Core 中构建正常,但 Crd.Data 失败并出现两个错误:
Unable to generate a temporary class (result=1).
CS0012 The type 'Consilium.TASKMobile.Common.Messages.UserType' is defined in an assembly that is not referenced. You must add a reference to assembly 'Consilium.TASKMobile.Common.Messages, Version=6.0.60037.0, Culture=neutral, PublicKeyToken=null'.
这个程序集肯定被引用了。两个项目从相同的中性位置引用完全相同的文件。我尝试移动引用的文件,并在重新添加它们之前删除引用。
两个项目的以下内容相同:
- 配置(任何 CPU)
- 目标框架(4.6.1)
- csproj 文件中的 PropertyGroups
- csproj 文件中对第三方 DLL 的引用
- 引用的属性(相同的版本,Copy Local = True 等)
基本上我的两个项目在我能想到的检查的各个方面都是相同的,但其中一个项目无法在发布模式下构建,所以某处肯定有一些不同的地方。我错过了什么?我还能检查什么?
解决方案
所以我花了相当多的时间在这上面,却一无所获,所以我想休息一下再回来。两周后,我准备为我的第一个用户测试部署一个发布版本,瞧,没有错误!
向最终在这里寻找解决方案的任何人道歉——我不知道是什么原因造成的,也不知道为什么问题消失了,我只想说 dll 或我对它们的引用都没有改变。
推荐阅读
- html - 选中的复选框不起作用。HTML CSS
- reactjs - 状态触发时的 useEffect 清理
- javascript - Discord 机器人发布多个结果
- bash - 如何使用 AWK 和 ffmpeg 提取时间码
- javascript - 如何再次调用javascript中的函数?
- javascript - 按顺序进行异步调用并在错误时重复
- r - 根据 R 中的列值字符串将数据帧拆分为两个子数据帧
- python-3.x - 如何获取运算符类型并将公式应用于熊猫数据框
- c# - 如何将对象变量发送到由 BackgroundWorker 实例调用 dowork 的方法中?
- c++ - Msys2 mingw 用 openssl 构建 libcurl,但不支持 https