我们开发了一个基于WPF的应用程序。我们能够使用安装程序成功部署应用程序。
我们有什么方法可以避免安装? 是否可以在不安装的情况下将应用程序用作单个可执行文件?
答案 0 :(得分:2)
您可以使用ILMerge将依赖项合并到可执行文件或主程序集中。它将合并所有依赖程序集并创建可以部署的单个程序集文件。
有关于如何使用它的各种链接(如this)
更新:使用WPF应用程序时,加载程序集运行时会出现一个问题。 this link为其提供了解决方案。
答案 1 :(得分:1)
如果您的WPF应用程序包含单个项目,那么您可以仅从您构建项目时生成的项目的.exe
文件夹中分发bin
文件。点击它将启动您的应用程序。
如果它仅供私人使用,那么这可能是可以接受的,但对任何其他项目来说这样做是非常不专业的。无论哪种方式,您所做的都取决于您,您可以在以下位置之一找到可执行DLL,具体取决于您当前的解决方案配置:
AppName> ProjectName> bin>调试
AppName> ProjectName> bin>发布AppName> ProjectName> bin> x86>调试
AppName> ProjectName> bin> x86>发布
......或类似的。
答案 2 :(得分:1)
如果您在目标计算机上安装了框架并且兼容版本,答案是肯定的,但您必须关心依赖项。如果您不依赖于GAC中的某些内容,则xcopy目标上的bin目录将起作用。如果您确实需要单个.exe文件,请使用ILMerge将所有程序集打包到一个文件中。
答案 3 :(得分:0)
只需发布您的应用并创建一个exe文件即可:
这将产生一个单独的exe,但仍取决于客户端上具有.net Core的运行时(可以从此处下载:.Net downloads page)。
如果您希望它完全不依赖,则可以在“部署模式”下拉列表中选择“自包含”。据我所知,此选项将在您的.exe文件上添加〜150MB,但客户端不再需要.Net Core。
在这种情况下,我不知道XP的兼容性,因为Win7向前支持.Net Core。如果有人进行测试,我将不胜感激。
此外,除了dll文件以外,我还没有使用资源或任何其他类型的依赖项对此进行过测试。
在Visual Studio Community 2019上进行了测试,该项目创建为“ WPF应用程序(.Net Core)”,并且具有作为依赖项的项目创建为“类库(.Net标准)”