【问题标题】:Installation C# application without dot net framework安装没有点网框架的C#应用程序
【发布时间】:2021-12-08 21:10:56
【问题描述】:

我在 C# 2010 上创建了一个新应用程序。创建安装文件后,我知道为了安装目的,用户必须有一个 dot net 框架。有什么办法可以摆脱在用户计算机上安装点网框架。每次我尝试在用户计算机上安装我的应用程序时,它都会重定向以安装 dot net 框架。有什么建议吗?

【问题讨论】:

  • 在没有 .Net Framework 的情况下运行 C# 应用程序就像 Eating without food, Bathing without Water?
  • 摆脱系统。*引用,你很高兴
  • @t3hn00b:这就像告诉一个人摆脱身体的生命,然后他会享受这个世界。
  • 接下来是什么,在干净的机器上安装没有 Windows 的应用程序的问题? :)
  • @DanielMošmondor:不,下一个问题是How to install a C# app on a System which is Off/Dead

标签: c#


【解决方案1】:

这是个问题;因为 .NET 应用程序的设计。

这里有一些参考资料供您参考: Visual C#

“C#(发音为“C sharp”)是一种编程语言,旨在构建在 .NET Framework 上运行的各种应用程序。” [第一句话]

Intro to C# and .NET

【讨论】:

    【解决方案2】:

    正如问题中的 cmets 试图暗示的那样,为了执行 .NET 应用程序,.NET Framework 是必需的

    你有两个选择,真的:

    1. 要求用户安装 .NET Framework。这是最常见的选择,原因马上就会清楚。有这样的要求并非闻所未闻。这类似于要求用户安装 Windows 才能运行您的 Windows 应用程序。
    2. 使用应用程序安装程序分发 .NET Framework。这是可能的,但较少使用,因为 .NET Framework 与普通应用程序相比。但是,如果您必须这样做,那么该选项至少是可用的。一些快速的谷歌搜索将我带到this helpful blog post

    【讨论】:

    • Windows 不是默认提供 .NET,至少是现代版本?
    • 另外一种选择是在非托管代码中制作应用程序,这样就不需要框架——这是一项非常昂贵的(时间和金钱)工作。
    • @Morawski:是的,它预装在 Win7 上
    • @Morawski:但是 OP 可以假设应用程序的所有用户都将运行 Windows 7 或更高版本吗?根据我的经验,XP 仍然是最广泛使用的版本。
    • 预装了哪个版本?
    【解决方案3】:

    这是不可能的。 C# 建立在 .NET 框架之上,因此任何 C# 应用程序都需要有可用的 .NET 版本。在http://en.wikipedia.org/wiki/.NET_Framework#History,您可以查看在各种版本的 Windows 中可用的 .NET 框架版本。简而言之,XP 不包含任何内容,Vista 包含 3.0,Windows 7 包含 3.5。如果您为这些版本之一构建,那么在这些操作系统上,您的用户将不需要安装任何额外的东西。使用客户端配置文件而不是完整的 .NET 还可以帮助减少或消除用户需要执行的安装。

    【讨论】:

    • C# is built on the .NET framework, so any C# app requires that a version of .NET be available. 不能为 Mono for Windows 而不是 .NET 开发他们的 C# 应用程序吗?也许不是最值得推荐的替代品,但仍然是一个替代品,除非我错过了什么
    • 据我所知,Mono 必须像 .NET 框架一样安装,所以我没有提及它,因为我认为它更像是“.NET 的一个版本”,而不是完全独立的东西.它恰好是 .NET 的第三方跨平台实现。
    【解决方案4】:

    很遗憾,不。这是不可能的。

    用简单的术语来解释一下。

    假设如果你只写了 1 行代码,你会简单地声明一个 int 变量,谁会告诉操作系统它应该在内存中创建一个空间?

    该框架完全可以创建在系统中运行您的应用的基本环境。

    OOP 谈到了真实世界的建模和关系,所以让我给你一个。

    将自己视为 C# 应用程序,将大自然/环境(Greenry)视为 .Net 环境。(.Net 称为环境)

    没有大自然你能生存吗?从你来到这个世界的第一秒开始,你就开始呼吸。谁为你提供氧气。大自然母亲

    【讨论】:

    • 这是可能的,您可以实现自己的基本类型(int、string 等)。通过删除对 mscorlib 和其他 .NET 库的任何引用,您可以完全不使用 .NET 进行开发。
    • 你可以对 C 程序提出相同的论点,它根本不需要任何运行时......
    • @WillVousden:是给我还是给大卫安德森
    【解决方案5】:

    在创建安装包时,您可以添加 dot net framework exe 文件作为先决条件,然后在安装应用程序时,它可以检查系统是否具有 .net 框架。如果未安装,您的应用程序可以安装框架。

    【讨论】:

      【解决方案6】:

      当您使用托管语言编写您同意使用其虚拟机的应用程序时,c# 代码将编译为需要 dot net 框架执行的 IL。

      .net 框架默认存在于 Windows 7、8、8.1 和 10 上,我不认为这是一个挑战。

      但如果您坚持这样做,那么有一种使用 Mono 的方法,只需从您的项目中删除 Mono 不支持的功能。

      首先安装mono和cygwin,然后将你的exe和mono.dll文件复制到一个文件夹中,确保你的文件名不长,因为在某些情况下捆绑失败,现在你可以使用mkbundle命令开始捆绑。

      打包完成后,你有一个可以在没有 .net 框架的情况下运行的 exe 文件

      希望对你有帮助

      【讨论】:

        【解决方案7】:

        我有同样的问题,希望应用程序使用现有的点网框架版本(4.6)设置,因为应用程序设置需要 4.7.2 版本,PC 不满足要求

        【讨论】:

        猜你喜欢
        • 2010-11-20
        • 1970-01-01
        • 2011-03-19
        • 1970-01-01
        • 2018-08-05
        • 1970-01-01
        • 1970-01-01
        • 2022-01-08
        • 1970-01-01
        相关资源
        最近更新 更多