Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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
Wpf 打包后应用程序不启动 我正在创建一个应用程序,其中需要使用WiX安装程序包打包。_Wpf_Wix_Installation_Windows Installer_Package - Fatal编程技术网

Wpf 打包后应用程序不启动 我正在创建一个应用程序,其中需要使用WiX安装程序包打包。

Wpf 打包后应用程序不启动 我正在创建一个应用程序,其中需要使用WiX安装程序包打包。,wpf,wix,installation,windows-installer,package,Wpf,Wix,Installation,Windows Installer,Package,我对使用WIX非常陌生,但我已经花了时间和精力来学习它,以便能够打包我的WPF应用程序 在学习WIX之前,我尝试使用一个名为的软件来帮助打包我的应用程序。太棒了。我开始时用了一个小应用程序,效果很好。之后,我尝试使用我的实际WPF应用程序,但似乎发生的是,在包含所有dll之后,在启动.exe文件之后,应用程序根本没有运行。我在办公室的其他机器上试过,但同样的问题也发生了。应用程序只是没有执行 然后我尝试了一个没有对话框的简单WIX安装程序。我似乎经历了与高级安装程序相同的事情——它只是没有执行.

我对使用WIX非常陌生,但我已经花了时间和精力来学习它,以便能够打包我的WPF应用程序

在学习WIX之前,我尝试使用一个名为的软件来帮助打包我的应用程序。太棒了。我开始时用了一个小应用程序,效果很好。之后,我尝试使用我的实际WPF应用程序,但似乎发生的是,在包含所有dll之后,在启动.exe文件之后,应用程序根本没有运行。我在办公室的其他机器上试过,但同样的问题也发生了。应用程序只是没有执行

然后我尝试了一个没有对话框的简单WIX安装程序。我似乎经历了与高级安装程序相同的事情——它只是没有执行.exe文件

我试图测试它是否是我的应用程序,是我从实际应用程序的调试文件夹中复制了所有dll,并将它们粘贴到C:驱动器上的程序文件中。这似乎在我自己的机器上也适用于其他机器——这让我更加困惑!我还确保应用程序构建选项如下:

Build Option: Page 

Copy to Output Directory: Do not copy

Custom Tool: MSBuild Compile 
因此,我很难判断是我的应用程序还是dll还是实际应用程序中缺少的东西,还是我在使用WIX的实际安装程序中缺少的东西

任何帮助、专业知识或指导都将非常感谢,以帮助我理解我做错了什么-就像我说的,我对整个包装都是新手,所以我可能错过了一些非常愚蠢的东西


提前感谢。

WIX是一种打包工具。它只是打包您的应用程序并将其放入客户机中,并执行此处不需要的其他操作

这完全是关于您的应用程序配置的。所有引用程序集所需的任何应用程序WPF或Windows.exe文件都应在客户端计算机中可用以执行。如果将“复制本地属性”设置为true,则需要将程序集传送到应用程序安装文件夹。如果将“复制本地属性”设置为false,则需要将所有程序集安装到客户机GAC文件夹中

将程序集发送到安装文件夹总是比在GAC中安装容易

注:

框架在应用程序打包中也发挥了重要作用

WPF应用程序是必需的。客户端计算机中的.NET Framework 4.0或至少.NET Framework 3.5 SP1取决于我们用于创建应用程序的框架

与WIX一样,它只是一个打包工具,不会影响安装的运行方式。要安装程序集,您有一个不同的页面,称为“程序集”,因此首先需要在“文件和文件夹”页面中添加所有EXE和DLL,然后转到“程序集”页面,并在列表中添加需要作为程序集安装的DLL

在此新页面中,在列表中添加程序集后,您可以在EXE旁边的应用程序文件夹或GAC中的机器安装中轻松选择单选按钮如何安装程序集,即private install

请注意,汇编页面在专业或更高级别的项目类型上可见,而不是在免费版本中

关于上述单独的组件讨论。如果只有一个组件安装所有文件或单独的组件,则不会影响应用程序的运行方式。这只是Microsoft的建议,目的是为您的安装程序包提供更好的设计

如果每个DLL都有一个组件,则Windows Installer可以在其中一个DLL丢失或被更改时触发自动修复。如果所有文件都有一个组件,则Windows Installer仅在文件丢失或更改时才会触发自动修复,而如果任何其他文件丢失或更改,则在启动应用程序时不会触发修复


在下面的文章中,您可以找到更多关于的详细信息。

感谢@Vinoth的回复。那么你的意思是我应该复制客户端机器中的程序集dll,同时也要有.msi WIX安装程序对不起,如果我没有正确地跟随!:安装安装程序时,我们需要随exe一起提供程序集。如果您正在将程序集安装到msi WIX安装程序中,那么当我们安装安装程序时,它将被运送到客户端计算机中。不需要单独复制程序集。嗯,在TARGETDIR中,我包括了.exe文件,还包括了所有dll。这是实现它的正确方法吗?是的。但对每个文件、程序集、exe等使用单独的组件。@Vinoth Copy Local不影响程序集的部署方式。它只是开发人员机器上的一个辅助工具,使其更易于运行或调试。它还可以用于在一个位置收集依赖项以进行打包,但每个依赖项的安装位置都是一个
独立决定。当然,部署到应用程序文件夹的所有程序集都很好而且简单。嗨,Bogdan-感谢您的回复:。我知道WIX所做的一切本质上就是将所有内容打包到一个可管理的文件中。我正在努力的是抓住并理解它。我已经把我所有的Dll放进了不同的组件中。但是在我的WIX中,我觉得我缺少了一些东西,让它无法加载应用程序——但不确定是什么。在wixproj中,我应该引用我的应用程序吗?