我想收拾我的WinForm的项目Inno Setup的 。 但是除了主要的可执行文件,它必须指定其他所需文件,有项目文件夹中的许多文件。
那么,哪些文件是必需的? 确实的.cs脚本重要? 或者只是位于/ bin /释放的文件/文件?
我想收拾我的WinForm的项目Inno Setup的 。 但是除了主要的可执行文件,它必须指定其他所需文件,有项目文件夹中的许多文件。
那么,哪些文件是必需的? 确实的.cs脚本重要? 或者只是位于/ bin /释放的文件/文件?
总的来说 :我喜欢汤姆·布洛杰特的意见在这里找到依赖关系和运行时间。 下面是一些详细的技术方案,以确定到底是怎么回事有问题的应用程序。 组装着急。
干净的虚拟 :很显然采取莱克斯李的建议 (以上你的问题评论)手动设置你的应用程序放在一个干净的虚拟的质量保证和测试 ,并确定以“迭代的方式” 的部署要求 。
检查清单 :而仅仅是为了记录: 通用检查表应用程序启动的问题 (有人downvoted出于某种原因,让我知道你发现了什么错误,在那里,也许我是一个部署专家不是一个编码器-它?更多的是一个“点子”列表不是一个真正的清单)的。
更新 - 2018年9月 :
调试代码-发射程序调试 :你可以在你的应用程序的启动过程的早期插入一个消息框,滑流调试二进制文件到您的安装程序,安装它,然后将调试器附加到应用程序的消息框,在启动后,才能通过推出码? (设置断点)。 现在,您可以调试,提供您的EXE下车地面的 。
也许检查这个漂亮的高级安装视频教程这个“连接调试的方法” 。 它显示了自定义操作代码相同的方法。 该程序是用于启动应用程序相同。 仅附加在消息框,并设置断点。
注 :显然记得释放二进制文件重新编译,一旦你知道问题是什么-复试启动。 调试二进制文件不是可再发行 - 他们只绑定到由MS SDK安装调试的DLL。 普通PC机将无法(正常)有这些调试的DLL。
Visual Studio的模块查看 :我已经看到它建议在Visual Studio调试模式下运行。 项目运行交互: Debug => Start Debugging
,然后去: Debug => Windows => Modules
,以获得所加载的运行应用程序的列表。 我不知道,坦率地说,如果这让你的所有类型的依赖关系。 可以有很多不同的类型,在这里说明的Dependency Walker中的帮助文件 。 我想接我们的汉斯帕桑特的大脑在这个问题上:-) ,但它可能是太详细进入。
的Dependency Walker :这是一个古老的Windows SDK工具。 这是非常过时的现在 - 自从上一次更新,我认为10年以上。 这是老战马依靠,但对于新的二进制文件不起作用很大。 它不支持WinSxS文件依赖关系(并排侧的win32组件)或API-集 。
Options => Configure Module Search Order...
。 Windows在在那样的搜索顺序的文件/模块 - 与不同OS版本之间的差异。 DUMPBIN :从Windows SDK另一个旧的工作马(搜索下%ProgramFiles(x86)%
与Visual Studio安装在系统上)。 这是一个命令行工具。 对于受虐狂:-)。 我真的不知道,如果它的功能的最新的二进制适当的支持,但它似乎维持(不像的Dependency Walker)。
将procmon (Sysinternals的):这是一个人发誓,当谈到解决硬依赖问题的工具。 快速实物模型样本 。 真正的交易 - 为无论是引擎盖下到底发生一个小望远镜。 我不是在其使用的专家,但它始终是启发看输出的想法。 缺少COM服务器注册等...
ProcessExplorer (Sysinternals的): 请检查这个答案 。
Fuslogvw.exe:是否Fuslogvw.exe告诉你什么? (.NET组件结合失败)。
探测组件,.NET ( Loaded
? GAC
?如果Probing hints
)
.NET探测 (如何在CLR定位程序集)的.NET程序集。
Dependencies.exe :也许你也可以尝试这个新的,开放源码的重写的Dependency Walker (上面提到的那个老SDK工具)在C#中部分完成:“ Dependencies.exe ”。 这个工具是相当未完成的,并没有从Dependency Walker中的所有功能(我不能看到exe文件的任何分析功能),但它支持的API集和WinSxS文件的依赖 -或并排侧的Win32组件(这是从依赖沃克丢失)。 我没有测试它足以真的建议 - 但它是开源的,因此检查的。 I have contacted the author about an issue where the bundled peview.exe is identified as malware
。 笔者赶紧回来解释 。 建议您开始使用应用程序之前,只需删除peview.exe。
NDepend的 ( 维基百科 ):一个工具,我怕我不使用,但请这个答案 (做检查)。
部署工具 : 各种部署工具除了Inno Setup的( 列表视图,只有核心工具 )。
一些链接 :
。净
运行该应用程序所需的所有文件都可以在中找到/bin/release
文件夹,包括DLL和可执行文件本身。
这不,但是,假设你使用内置工具在Visual Studio中添加这些库到项目
编辑(感谢李莱克斯):如果您尚未安装运行时文件(它们通常与.NET安装),你需要从安装它们https://www.microsoft.com/net