抛出:当我运行我的应用程序版本 .exe 时,“无法加载文件或程序集错误”

Posted

技术标签:

【中文标题】抛出:当我运行我的应用程序版本 .exe 时,“无法加载文件或程序集错误”【英文标题】:Throwing: 'Could not load file or assembly error' when I run my application release .exe 【发布时间】:2015-06-23 18:35:41 【问题描述】:

当我在发布文件夹中运行程序的 .exe 时,将以下错误写入应用程序错误日志文件:

<logEntry>
  <Date>23/06/2015 20:00:50</Date>
  <Exception>
    <Source>Twitter_twitinvi</Source>
    <Message>Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.</Message>
    <Stack>   at Twitter_twitinvi.Program.RunTwitterApplication()
at Twitter_twitinvi.Program.Main(String[] args) in c:\Users\nikhil\Desktop\MediaLabs\Backup\BackupTwitter\Program.cs:line 64</Stack>
  </Exception>
</logEntry>

我已尝试重新安装 Newtonsoft 以确保与版本控制没有冲突。该应用程序通过VS2012运行良好

我的意图是在捕获异常时重新启动应用程序,这是我的代码:

static void Main(string[] args)
    
        try
        
            RunTwitterApplication();
        

        catch (Exception e)
        
            LogWriter.LogWriter.WriteLog(e);
            Process.Start(@"C:\Users\nikhil\Desktop\MediaLabs\Backup\Twitter_twitinvi\Twitter_twitinvi\obj\Release\Twitter_twitinvi.exe");

        
    

    private static void RunTwitterApplication()

这行得通吗?一旦 .exe 文件开始运行,当然不会出现上述错误

谢谢

【问题讨论】:

我已经回答了你问题的前半部分。关于你的 try/catch 块的第二部分真的应该是它自己的问题。 【参考方案1】:

您似乎没有正确复制资源。

进入 Visual Studio 的解决方案资源管理器窗口,打开项目的“引用”选项卡,然后确保 Newtonsoft.Json 引用的“复制本地”属性设置为“真”。

【讨论】:

您好,感谢您的回复。我检查了 Copy local 属性并将其设置为 true。还有什么可能是错的吗? 您是否必须更改属性,还是始终设置为“True”?如果您必须更改它,请在重建之前尝试清洁。还要确保Newtonsoft.Json 的“参考”条目旁边没有黄色感叹号 (!)。这 !表示引用无效,需要重新设置。事实上,不管怎样,重新设置参考可能是个好主意。 (删除引用,然后重新添加)。

以上是关于抛出:当我运行我的应用程序版本 .exe 时,“无法加载文件或程序集错误”的主要内容,如果未能解决你的问题,请参考以下文章

当我的应用程序无法在调试模式下运行,但 exe 文件可以正常运行时,这意味着啥?

调试版本和运行版本之间的区别

Windows 8 上的 MinGW

错误MSB6006:“cmd.exe”退出,运行QT应用程序的代码1

如何从无服务器 lambda 内部抛出错误

调试版本运行但发布给出 0xc000007b - 缺少 dll?