【发布时间】:2023-12-18 22:01:01
【问题描述】:
我在 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 文件中的属性组
- 对 csproj 文件中第三方 DLL 的引用
- 引用的属性(相同版本,复制本地 = True 等)
基本上我的两个项目在我能想到的检查的各个方面都是相同的,但是其中一个项目未能在发布模式下构建,因此某处肯定有一些不同的地方。我错过了什么?我还能检查什么?
【问题讨论】:
-
请尝试确保您已添加对“Consilium.TASKMobile.Common.Messages” dll(版本:6.0.60037.0)的引用。也许您可以从这两个链接中获得帮助:compiler error CS0012 和 Build error
-
感谢 Lance,该 dll 确实被引用了(否则它不会在调试中构建),并且它的引用方式与我的第二个项目的引用方式完全相同,该项目在调试和发布中都进行了编译。我在其中任何一个链接中都找不到任何适用或有帮助的内容。
标签: build msbuild visual-studio-2017 release sgen