我有一个包含6个左右项目的解决方案,这些项目在调试配置时都可以正常运行。但是,当我尝试在发布模式下构建它时,我得到53个错误,所有人都抱怨说无法找到DLL。这只是一些消息:
错误:
- ' AnimatedSplashScreen'不包含'消息'的定义没有扩展方法'消息'接受类型' AnimatedSplashScreen'的第一个参数。可以找到(你错过了使用指令或汇编引用吗?)
- 名称' DataContext'在当前背景下不存在。
- 名称' InitializeComponent'在当前背景下不存在。
- 标签' MetroProgressBar'在XML命名空间中不存在< clr-namespace:MahApps.Metro.Controls; assembly = MahApps.Metro' .39
警告
- 无法解析此引用。无法找到程序集" EntityFramework,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089,processorArchitecture = MSIL"。检查以确保磁盘上存在程序集。如果您的代码需要此引用,则可能会出现编译错误。
- 无法解析此引用。无法找到程序集" Fluent,Version = 3.5.1.198,Culture = neutral,PublicKeyToken = 3e436e32a8c5546f,processorArchitecture = MSIL"。检查以确保磁盘上存在程序集。如果您的代码需要此引用,则可能会出现编译错误。
- 无法解析此引用。无法找到程序集" GalaSoft.MvvmLight,Version = 5.2.0.37222,Culture = neutral,PublicKeyToken = e7570ab207bcb616,processorArchitecture = MSIL"。检查以确保磁盘上存在程序集。如果您的代码需要此引用,则可能会出现编译错误。
我该如何解决此问题?
调试路径保持不变,但每个项目发布路径都已设置为构建到特定文件夹中。
编辑:这是我的错误列表的样子。所有错误似乎都与第三方软件包有关。
8 个答案:
答案 0 :(得分:11)
我有类似的问题。
Project在Debug模式下构建良好,但在Release模式下,缺少一些引用。
我发现,缺少引用的dll都位于bin / debug文件夹中。
我将它们移向中立位置,再将它们添加到项目中,问题就解决了。
答案 1 :(得分:3)
正如Filburt指出的那样。项目文件中有一些损坏的引用路径。在纠正这些路径后,所有内容都按预期构建。
虽然不确定他们是如何被打破的。有什么想法吗?
答案 2 :(得分:0)
我的问题是所引用的库选中了“允许不安全代码”复选框,但是在发行版中未选中该复选框。不允许不安全代码的错误不可见。
答案 3 :(得分:0)
出现错误时,转到项目下的“参考”。
删除编译器抱怨的引用。
再次添加。
那应该修复损坏的引用。
答案 4 :(得分:0)
从调试更改为发布模式时,我遇到了同样的问题。我正在尝试上面发布的其他建议,但没有任何解决方案。但是,对我来说,当我右键单击“参考”>“将packages.config迁移到PackageReference ...”时,选择“确定”,它开始工作。
答案 5 :(得分:0)
在重命名引用项目中的一个类之后,我遇到了同样的问题。我尝试了此处发布的所有[好吧,大多数]建议,但没有一个起作用。我终于卸载了有错误的项目,然后再次重新加载,所有错误都消失了!
答案 6 :(得分:0)
针对将要发布此帖子的其他搜索者。
我还发现了一个问题,即引用库可能没有匹配的.NET版本!
值得一试...
答案 7 :(得分:0)