C# Can';由于';缺失';参考资料

C# Can';由于';缺失';参考资料,c#,visual-studio,C#,Visual Studio,我有一个包含6个左右项目的解决方案,这些项目在调试配置时都可以正常构建。然而,当我尝试在发布模式下构建它时,我收到53个错误,它们都抱怨DLL找不到。这只是其中的几条信息: 错误: “AnimatedSplashScreen”不包含“Message”的定义,并且找不到接受“AnimatedSplashScreen”类型的第一个参数的扩展方法“Message”(是否缺少using指令或程序集引用?) 当前上下文中不存在名称“DataContext” 当前上下文中不存在名称“InitializeC

我有一个包含6个左右项目的解决方案,这些项目在调试配置时都可以正常构建。然而,当我尝试在发布模式下构建它时,我收到53个错误,它们都抱怨DLL找不到。这只是其中的几条信息:

错误:

  • “AnimatedSplashScreen”不包含“Message”的定义,并且找不到接受“AnimatedSplashScreen”类型的第一个参数的扩展方法“Message”(是否缺少using指令或程序集引用?)
  • 当前上下文中不存在名称“DataContext”
  • 当前上下文中不存在名称“InitializeComponent”
  • XML命名空间“clr命名空间:MahApps.Metro.Controls”中不存在标记“MetroProgressBar”;汇编=MahApps.Metro'.39
警告

  • 无法解析此引用。找不到程序集“EntityFramework,版本=6.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089,processorArchitecture=MSIL”。检查以确保磁盘上存在程序集。如果代码需要此引用,则可能会出现编译错误
  • 无法解析此引用。找不到程序集“Fluent,Version=3.5.1.198,Culture=neutral,PublicKeyToken=3e436e32a8c5546f,processorArchitecture=MSIL”。检查以确保磁盘上存在程序集。如果代码需要此引用,则可能会出现编译错误
  • 无法解析此引用。找不到程序集“GalaSoft.MvvmLight,版本=5.2.0.37222,区域性=中性,PublicKeyToken=e7570ab207bcb616,processorArchitecture=MSIL”。检查以确保磁盘上存在程序集。如果代码需要此引用,则可能会出现编译错误
我如何开始解决这个问题

调试路径保持原样,但每个项目发布路径都已设置为构建到特定文件夹中

编辑:这就是我的错误列表。所有错误似乎都与第三方软件包有关。
正如菲尔伯特所指出的。项目文件中有一些断开的引用路径。更正这些路径后,所有内容都会按预期进行构建

但我不知道他们是怎么开始崩溃的。有什么想法吗?

我也有类似的问题。 项目构建在调试模式下运行良好,但在发布模式下缺少一些引用

我发现,缺少引用的dll都位于bin/debug文件夹中。
我把它们移到一个中立的位置,再次将它们添加到项目中,问题就解决了

我的问题是引用的库选中了“允许不安全代码”复选框,但在发布版本中没有选中它。不允许不安全代码的错误不可见。

出现错误时,请转到项目下的“参考”。 删除编译器抱怨的引用。 再加一次


当我从调试模式改为发布模式时,我也面临同样的问题。我尝试了上面发布的不同建议,但没有解决问题。然而,对我来说,当我右键点击Reference>Migrate packages.config到PackageReference时。。。选择OK,它开始工作


在重命名引用项目中的一个类后,我遇到了同样的问题。我尝试了这里发布的所有建议,但没有一个有效。我最终卸载了有错误的项目,然后重新加载,所有错误都消失了

其他将访问此帖子的搜索者。 我还发现了一个问题,可能引用库没有匹配的.NET版本!
这也值得一看。

我最感兴趣的是
MSIL
体系结构。您的调试配置也设置为MSIL吗?不,它们都设置为“任意CPU”。您的版本也设置为“任意CPU”吗?是的。一切都设置为“任意CPU”。一个项目有几个不同的调试配置,但这些配置构建得很好。但是没有一个发行版配置是因为“缺少”引用而生成的。您可以发布.csproj文件中包含这些断开引用的部分吗?我认为@Filburt应该把这个作为答案。很难说这些被破坏的引用是如何到达那里的,但如果你看到的不是相对路径,那就是错误的。如果您曾经参与过一个项目,其中有多个开发人员不断更改对其本地签出路径的引用,您就会知道。@AhmedSalameh我同意Jake自己回答这个问题。考虑到我是唯一的开发人员(目前),显然,我在某个地方做了一些愚蠢的事情,破坏了一切。对我来说,这是因为我将一个项目移动到了另一个目录,然后我的许多文件的相对路径在项目中被破坏了。奇怪的是,即使在清理和重新构建之后,它仍然可以很好地用于调试,但不适用于不同的配置。