C# 应用程序在调试时运行,但在发布时不运行

C# 应用程序在调试时运行,但在发布时不运行,c#,asp.net,C#,Asp.net,发布web应用程序并运行它时,将返回错误 “无法加载文件或程序集'BaseApplicationName'或其依赖项之一。试图加载格式不正确的程序。” 但是,如果我通过调试(f5)运行应用程序,它将正确运行 我想归根结底是 通过调试运行应用程序与发布应用程序有什么区别,会导致这样的问题? 发布时,我将其设置为删除所有现有的 它的启动历史…我将32位Oracle.DataAccess dll添加到64位系统中。如果出现与上述相同的错误,但使用的是Oracle.DataAccess名称而不是base

发布web应用程序并运行它时,将返回错误

“无法加载文件或程序集'BaseApplicationName'或其依赖项之一。试图加载格式不正确的程序。”

但是,如果我通过调试(f5)运行应用程序,它将正确运行

我想归根结底是

通过调试运行应用程序与发布应用程序有什么区别,会导致这样的问题?

发布时,我将其设置为删除所有现有的

它的启动历史…我将32位Oracle.DataAccess dll添加到64位系统中。如果出现与上述相同的错误,但使用的是Oracle.DataAccess名称而不是baseApplicationName,则不会工作并崩溃。此后,我删除了对它的所有引用,并删除了dll,以尝试让它再次在没有它的情况下运行


有什么建议吗?

您是否尝试过“清理”您的解决方案,然后重新构建它?

您是否尝试过“清理”您的解决方案,然后重新构建它?

您的解决方案中存在一个不匹配的问题,您将x86与x64混合,错误格式消息指试图从32位可执行文件加载64位dll,或从32位可执行文件加载64位dll。

在混合使用x86和x64的解决方案中存在不匹配,不正确的格式消息指的是试图从32位可执行文件加载64位dll,反之亦然。

我不确定您使用的是哪个版本的VS-但我在2005年和2008年注意到,它与不再使用的依赖项有关。在发布步骤中,它可能仍在引用Oracle DLL,并且位问题(32对64)会导致您看到的错误

如果在VS中看不到对Oracle文件的任何引用,我会在记事本中打开*proj文件,查看是否有对它的隐藏引用,在发布时可能会推送到服务器


HTH

我不确定您使用的是哪个版本的VS,但我在2005年和2008年注意到,它与不再使用的依赖项相关的问题。在发布步骤中,它可能仍在引用Oracle DLL,并且位问题(32对64)会导致您看到的错误

如果在VS中看不到对Oracle文件的任何引用,我会在记事本中打开*proj文件,查看是否有对它的隐藏引用,在发布时可能会推送到服务器


HTH

可能需要清除IIS缓存:C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727/临时ASP.NET文件发布到的web服务器上是否进行调试?您使用的是什么web服务器?在与Vista相同的“服务器”上调试和运行。可能需要清除IIS缓存:C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727/Temporary ASP.NET文件发布到的web服务器上调试吗?您使用的是什么web服务器?在Vista的同一“服务器”上调试和运行。