c# - 在没有 .net 框架的情况下运行 winform 应用程序
问题描述
我正在用 c# 开发一个闪存复制保护软件。该软件保留在U盘上(不能转出或安装在电脑中),是一个点击运行软件,无需安装。我知道要让它在其他计算机上工作,计算机必须安装 .net 框架。我在想是否可以将.net framework dll 添加到应用程序的启动路径中。如果它会起作用,请让我知道以及如何去做。
如果除了将我的项目切换到 C 或 C++ 之外还有其他方法,请告诉我。谢谢。
解决方案
在正常的 .NET 编译中(无论源语言如何),产品是 (MS)IL - (Microsoft) Intermediate Language - dll。在可执行文件的情况下,它被赋予了一些本机引导代码,一个入口点,但它仍然与框架安装紧密相关,并且适用于几乎所有的东西,如 .NET dll。框架必须进行最终的 IL -> Native Code 翻译。IL 是一个与 Java Bytecode 非常相似的概念,但在 Java 中有效和无效的时间大约为 5 年。
.NET Native不编译 IL。它编译硬的本机代码。类似于任何 Native C++(不要误认为是 C++ .NET)编译器会生成的编译器。与 Delphi 编译器相同。编写框架本身的内容相同。最终程序将拥有它访问的所有 .NET .dll 的本地副本。它完全独立于任何 .NET Framework 安装。
推荐阅读
- ios - 根据键盘是否可见更改文本视图的框架
- c++ - 圆形段的C++区域,为什么我不能得到正确的结果?
- vba - VBA错误的数字参数用户表单代码,传输变量?
- java - 原因:找不到 com.example.exampleCombant.Appname.Database:com.example.example.appname.DataBase 在 com/Database.class 中找到
- java - 似乎无法找到为什么“'android.text.Editable android.widget.EditText.getText()' on a null object reference ”为空,我在这里缺少什么
- excel - How to count consecutive values in Excel?
- cassandra - Connecting Datastax outside Kubernetes to a Cassandra cluster in Kubernetes
- c - Free memory from data structure
- java - 将战争文件部署到 Azure 应用服务不起作用
- algorithm - 检查reuleaux三角形是否在C中的三角形/五边形/圆形内部/外部