Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#调试文件夹复制到其他位置时不会运行exe_C#_Visual Studio_Wix_Windows Installer - Fatal编程技术网

C#调试文件夹复制到其他位置时不会运行exe

C#调试文件夹复制到其他位置时不会运行exe,c#,visual-studio,wix,windows-installer,C#,Visual Studio,Wix,Windows Installer,当复制到其他位置时,我的桌面应用程序的调试(或释放)文件夹不会运行exe。它不会发出任何错误,只是将系统挂起一两秒钟,但会立即恢复正常,就好像什么都没有运行过一样 Visual Studio 2015是否也在调试的上层层次结构中创建依赖项?我用Wix创建的安装程序没有运行预期的exe,我认为这是Wix的问题。但后来我通过在一个临时子文件夹中复制完整的调试文件夹对其进行了测试,应用程序甚至没有从那里运行。只有在调试文件夹以外的位置存在依赖项时,才会发生这种情况(因为系统资源(DLL)从C:driv

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


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

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

A我在你的另一个问题中写道,对于难以调试的依赖项场景,一种方法是咬紧牙关,运行一个完整的会话(即直接热链接到live sysinternals工具共享,单击它将立即开始下载-请注意)

在这个问题中,您可以看到如何使用此工具的快速描述:。关键是设置一个包含筛选器,该筛选器将只显示您需要查看的事件-基本上是针对您自己的应用程序。我相信exe应该足够了

很多人觉得这个procmon的东西太过分了,不想处理它-但相信我,它几乎总是揭示一些意想不到的东西(但并不总是有用的)

与之前一样,这个答案可能也值得快速浏览一下(关于一般的依赖关系):。我至少会尝试dependencies.exe工具-即使它有点“beta-ish”。您可以从这里下载:


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

在一般Visual Studio项目(各种类型)中不运行?无错误?是移动/桌面应用程序还是控制台应用程序将生成输出放入文件夹以使调试工作正常。就是这样。要生成安装程序,您必须找到实际依赖项是什么,在运行时如何找到它们,以及将它们交付到目标计算机的最佳合法方式。通常,来自原始供应商的高级可再发行安装程序是一种好方法。如果有.exes,请尝试WiX Bootstrapper项目。您可能需要知道.NET运行时如何定位程序集并使用Fusion日志查看器,以及Windows如何定位DLL并使用Dependent的配置文件模式或ProcMon per@SteinÅsmulGreat summary Tom-比我曲折的答案更切题。当我需要模块搜索顺序的提醒时,我会打开Dependency Walker(Dependency.exe)然后执行
Options=>Configure Module Search Order…
。它肯定过时了,但至少提醒了人们如何在Windows中扫描文件夹(每个Windows版本都不同,尤其是清单)。当然,当面临这些问题时,需要这样做(像我们所有人一样一次又一次)。也许通过Visual Studio调试器运行应用程序会有所帮助。有很多方法,例如,或调用。