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

时间:2018-01-03 10:56:43

标签: c# visual-studio wix windows-installer

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

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

1 个答案:

答案 0 :(得分:3)

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

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

您可以在此问题中快速了解如何使用此工具: Registering a CPP dll into COM after installation using Wix Msi installer 。关键是设置一个包含过滤器,它只显示你需要看到的事件 - 基本上对你自己的应用程序来说,应该足够了。

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

和以前一样,这个答案也值得快速浏览(一般来说是依赖关系):After creating MSI Installer for WPF app in Visual Studio 2017, EXE does nothing。我至少会尝试使用Dependencies.exe工具 - 即使它有点“beta-ish”。您可以从这里下载:https://github.com/lucasg/Dependencies/releases

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