【发布时间】:2014-07-10 07:57:57
【问题描述】:
我们开发了一个基于 WPF 的应用程序。我们能够使用安装程序成功部署应用程序。
有什么方法可以避免安装吗? 是否可以在不安装的情况下将应用程序用作单个可执行文件?
【问题讨论】:
标签: .net wpf deployment
我们开发了一个基于 WPF 的应用程序。我们能够使用安装程序成功部署应用程序。
有什么方法可以避免安装吗? 是否可以在不安装的情况下将应用程序用作单个可执行文件?
【问题讨论】:
标签: .net wpf deployment
只需发布您的应用并创建一个 exe 文件:
这将生成单个 exe,但仍依赖于客户端上的 .Net Core 的 Runtime(可从此处下载:.Net downloads page)。
如果您希望它完全不依赖,您可以在“部署模式”下拉菜单中选择“自包含”。此选项将在您的 .exe 文件上添加 ~150MB,但据我所知,客户端不再需要 .Net Core。
在这种情况下,我不知道 XP 的兼容性,因为从 Win7 开始支持 .Net Core。如果有人对其进行测试,我将不胜感激。
此外,我还没有使用 Resources 或除 dll 文件之外的任何其他类型的依赖项对此进行测试。
在 Visual Studio Community 2019 上测试,项目创建为“WPF App (.Net Core)”,并将项目创建为“类库 (.Net Standard)”作为依赖项
【讨论】:
如果您的 WPF 应用程序由单个项目组成,那么您可以仅分发构建项目时生成的项目的 bin 文件夹中的 .exe 文件。点击它将启动您的应用程序。
如果只是为了私人使用,那么这可能是可以接受的,但是对于任何其他项目这样做是非常不专业的。无论哪种方式,您都可以根据您当前的解决方案配置,在以下位置之一找到可执行 DLL:
AppName > ProjectName > bin > 调试
AppName > ProjectName > bin > ReleaseAppName > ProjectName > bin > x86 > 调试
AppName > ProjectName > bin > x86 > Release
...或类似的。
【讨论】:
如果您在目标机器上安装了具有兼容版本的框架,答案是肯定的,但您必须关心依赖关系。如果您不依赖 GAC 中的某些内容,则 xcopy 目标上的 bin 目录将起作用。如果您确实需要一个 .exe 文件,请使用 ILMerge 将所有程序集打包到一个文件中。
【讨论】: