c# - 如何制作一个 Visual Studio C# exe,一个独立的可执行文件(通过用 exe 打包 dll)?
问题描述
我在 Visual Studio 中用 c# 编写了我的 WindowsFormsApp。它在我的 Windows 机器上完美运行。
我包含了一些在编写代码时安装和使用的 nuget 包(如 Renci.SshNet),它可以从 Visual Studio 完美运行,但是当我从另一台 Windows 机器运行 exe 时,它没有运行。
所以我将 dll(Renci.SshNet)复制到另一台 Windows 机器到包含我的 .exe 文件的同一文件夹中,然后再次尝试运行。这一次我可以成功运行。
但是有没有一种解决方案可以将 dll 与 .exe 一起打包并生成一个独立的可执行文件,该可执行文件可以在其他 Windows 机器上运行而无需每次都复制 dll?
注意:它不需要独立于 .NET 框架。我假设任何使用这个 exe 的人都会安装它。
如果有人帮助我找到解决此问题的方法并提前致谢,那就太好了。
解决方案
您可以安装一个名为Fody
Install-Package Fody -Version 5.1.1
安装后,无论您构建程序,所有引用的 DLL 都将与 exe 合并。在安装之前检查 .net 框架版本,因为我记得当前版本仅适用于 .net 框架 4.6 及更高版本。
推荐阅读
- python - 两个矩阵参数的多元函数
- reactjs - 如何修复 Typescript 错误 TS2314、TS 2339 防止 Yarn Build
- cron - How can I get a crontab job to append values onto a new line instead of carrying on from the previous line?
- python - 从函数返回的生成器过早完成
- amazon-web-services - 如何创建指标的 MTD、QTD 和 YTD 总和
- couchbase - 用于更新语句的 N1Ql synatx 糖
- javascript - 使用 Rails 5 导入 Webpack
- python - 如何从一列中的每一行找到过渡量?
- asp.net-core - 使用带有 .net 核心应用程序的 IIS 进行日志记录(W3C 日志)(无托管代码)
- ios - 在 UILabel 上,如何判断是否设置了文本或属性文本?