复制到另一个位置时C#Debug文件夹不运行exe

复制到其他位置时,我的桌面应用程序的调试(或发布)文件夹不运行exe。 它没有发出任何错误,只是将系统挂起一两秒,但直接恢复正常,好像什么都没有运行一样。

Visual Studio 2015是否也在Debug的上层创建了依赖项? 我使用Wix创建的安装程序没有运行预期的exe,我认为这是Wix的问题。 但后来我通过在一个临时子文件夹中复制完整的Debug文件夹来测试它,并且应用程序甚至没有从那里运行。 只有在Debug文件夹以外的其他位置存在依赖项时才会发生这种情况(因为系统资源(dll)是从C:驱动器的绝对路径访问的,因此它们始终可用。

您的清单文件或其他设置文件可能有问题吗? 某些相对路径指向源层次结构中的文件夹? 也许它只是一个图像文件或某种缺少的设置文件? 或者它可能是完全不同的东西。

AI在你的另一个问题中写道,一种难以调试的依赖方案的方法就是咬紧牙关并运行一个彻底的procmon.exe会话( 这是一个直接的热链接实时sysinternals工具共享 ,点击它将开始下载瞬间 – 只是让你知道 )。

您可以在此问题中快速了解如何使用此工具: 使用Wix Msi安装程序在安装后将CPP dll注册到COM中 。 关键是设置一个包含filter,它只显示你需要看到的事件 – 基本上对于你自己的application.exe来说应该足够了。

许多人发现这种前瞻性的东西矫枉过正,并且不想处理它 – 但相信我,它几乎总能揭示出一些意想不到的东西(但并不总是有用)。

和以前一样,这个答案也值得快速浏览(一般依赖于): 在Visual Studio 2017中为WPF应用程序创建MSI Installer之后,EXE什么都不做 。 我至少会尝试使用Dependencies.exe工具 – 即使它有点“beta-ish”。 您可以从这里下载: https : //github.com/lucasg/Dependencies/releases 。

当然仔细检查Visual Studio中的模块视图 ,我在链接的答案中描述( Debug => Start Debugging ,然后去Debug => Windows => Modules )。 它应该显示加载的任何内容以交互方式运行项目。