![无法使用 Visual Studio 打开用 c# 制作的 .exe 应用程序](https://linux22.com/image/1345947/%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8%20Visual%20Studio%20%E6%89%93%E5%BC%80%E7%94%A8%20c%23%20%E5%88%B6%E4%BD%9C%E7%9A%84%20.exe%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F.png)
所以我用 C# 和 Visual Studio 制作了一个简单的计算器控制台应用程序。现在我将调试文件夹中的 .exe 文件交给朋友测试该应用程序。不幸的是,当他尝试打开它时,什么也没发生。
我让他检查他是否有 .Net Framework,他确实有。任务管理器上也没有任何东西。他说根本就什么都没发生。我让应用程序可以在 AnyCPU 上运行。我尝试在另一台计算机上运行该应用程序,没有任何问题。
此外,他使用的是 Windows 8,并且激活了 SmartScreen,当然会弹出警告,但他说他强制运行了它,所以我真的不知道出了什么问题。我希望你们知道这里发生了什么。
答案1
您无法强制使用 SmartScreen,您必须禁用它(至少我必须这样做。)无论如何使用 x84 进行编译(64 位架构也可以执行此操作。*)您针对的是什么框架?Windows 8 安装了标准 4.5,要运行 3.5 以下的程序,必须安装 .NET 3.5(它应该自动弹出)
尝试发布版本而不是调试版本。(它位于顶部栏,启用高级设置。)
*IA64 无法执行,AMD64 可以。要更改程序的架构:转到“项目”,“构建”选项卡,然后您会看到“平台目标”,将其更改为 x84。
要禁用智能屏幕:Windows + Q 搜索 SmartScreen,您将获得“维护中心”,在左侧单击“更改 Windows 智能屏幕设置”,然后选择最后一个单选按钮。
我粗略地翻译了所有内容,用英语来说可以说是不同的
答案2
当我将 .exe 文件(调试或发布)复制到另一台机器时,我遇到了同样的问题,它根本无法工作!在任务管理器中出现了几秒钟,然后就消失了,只在应用程序事件日志中留下 ArgumentOutOfRangeException 和 Kernelbase.dll 错误。所以我决定在文件无法启动的机器上安装 Visual Studio。将项目文件夹复制到与原始机器不同的文件结构并点击编译后,我发现我试图将字符串(文件路径)剪得比原来短(由于文件结构不同)。所以问题出在代码本身,而不是任何 .dll 或 .NET 版本。希望我有所帮助!
答案3
将 EXE 文件移动到另一台机器时我也遇到了类似的问题。
我进行了大量搜索,最终发现新机器(EXE 无法运行)没有最新的(或者根本没有)Microsoft Visual Studio C++ Redistributable 文件。
我只是去了最新支持的 Visual C++ 下载并为我的机器安装了最新版本vc_redist
。此后,EXE 立刻就能正常工作了。