为了账号安全,请及时绑定邮箱和手机立即绑定

C# 程序不会在 Visual Studio 之外作为 .EXE 启动

C# 程序不会在 Visual Studio 之外作为 .EXE 启动

C#
噜噜哒 2021-12-25 16:57:26
我在 C# winforms 中创建了一个小程序,当我在 Visual Studio 2017 中启动它时运行良好。但是当我构建解决方案并双击 .exe 时,没有任何反应,没有屏幕出现,甚至任务管理器也看不到它。没有错误。好像什么都没做!我唯一的猜测是我构建错误,因为我使用 Nuget 在 te 解决方案中安装 newtonsofts JSON.NET,我需要做任何不同的事情还是应该只构建解决方案?[解决了]今天学习了bin文件夹和obj文件夹的区别,感谢大家的帮助
查看完整描述

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

根据您的评论:

它在项目的 obj/debug 文件夹中

听起来您运行的是错误的 .exe。该obj文件夹用于临时/杂项。生成过程中的文件(请参阅生成的 obj 文件夹是什么?)。

相反,bin\Debug如果“调试”是您正在构建的配置,则您希望在 内运行 exe 。你可以在VS的顶部看到哪个配置。

//img1.sycdn.imooc.com//61c6dd0d000168d005560053.jpg

就像其他人也提到的,确保 Newtonsoft.Json.dll 也被复制到该输出目录。一般来说,程序及其依赖项需要在一起。否则,您的 exe 将不知道在哪里可以找到它运行所需的 JSON 代码。

99% 的情况下,您应该假装obj目录根本不存在。

如果这仍然没有为您指明正确的方向,请从命令窗口运行该应用程序。任何异常都应该打印到它,并且窗口将保持打开状态供您检查(这样做的好处是不需要任何额外的日志记录或异常处理代码来查看此错误)。
例如,我编写了一个糟糕的应用程序,该应用程序NullReferenceExceptionTestMain. 如您所见,即使我的应用程序崩溃了,堆栈跟踪也很容易看到(归功于 ColinM 最初提出这一点)。

//img1.sycdn.imooc.com//61c6dd190001552608490092.jpg

查看完整回答
反对 回复 2021-12-25
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

我相信启动模块有问题。请按照以下步骤操作

  1. 在 Visual Studio 中打开您的解决方案

  2. 双击属性

//img1.sycdn.imooc.com//61c6dd2500013c4f06460176.jpg

  1. 选择输出类型到 Windows 应用程序

  2. 确保设置启动对象如下

//img1.sycdn.imooc.com//61c6dd310001e50806310183.jpg

查看完整回答
反对 回复 2021-12-25
?
互换的青春

TA贡献1797条经验 获得超6个赞

我认为只有一个原因

Visual Studio 中有一个预定义的命令行参数。您的应用程序使用此参数来执行,如果没有它,它会过快地自行关闭,您甚至看不到您的应用程序已打开。

Right click on your project in VS -> Properties -> Debug 并查看命令行参数中是否有值


查看完整回答
反对 回复 2021-12-25
  • 3 回答
  • 0 关注
  • 357 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号