.net DLL现在可以随应用程序一起分发吗?

时间:2015-05-09 18:48:46

标签: .net

我对最近的.net发展很感兴趣,但我无法真正关注所有细节。我想知道现在是否可以将.net框架dll直接嵌入到应用程序中,而不是要求用户单独下载框架。

P.S。:对于"最近的.net开发",我的意思是它都是开源的,因此我想知道我是否可以使用新的开源版本。如果我得到了正确的,我甚至可以直接使用框架代码,因此应用程序不应该请求框架DLL,如果它?

3 个答案:

答案 0 :(得分:2)

  

我想知道现在是否可以嵌入.net框架dll   直接在应用程序中而不是要求用户下载   框架分开。

是的。 .Net native makes it possible。您可以在没有安装.net的情况下运行.net应用程序。

.Net native通过将应用程序预编译为本机代码来实现这一目标。

不幸的是,它仅适用于Windows商店应用程序。我们可能期望在不久的将来支持桌面应用程序。

有关详细信息,请参阅去年发布的this和此blog post

答案 1 :(得分:1)

不是真的。 .NET framework中没有允许将其直接嵌入单个可执行文件中的更新。

然而,每台运行Windows的现代PC都有.NET框架。 甚至Vista都安装了.NET 3. .NET通过Windows Update进行更新。

唯一需要担心没有.NET的操作系统是XP,它长期不受支持且不见了。

答案 2 :(得分:1)

我们在谈论什么样的应用?桌面?网络应用?

CoreFX只是.NET Framework模块化的模块化版本,但是它不会链接" (类似于C ++开发)对主可执行文件的任何程序集。

CoreFX将允许多个并行应用程序,因此当您将一个应用程序更新到新模块时,其他CoreFX应用程序不会受其影响。

但是(至少现在)CoreFX目前是针对云和服务器应用程序的目标,并没有.NET 4.6框架的全部功能,也没有或支持GUI框架(WPF,WinForms)。

因此,如果您的目标是Web应用程序,您可以尽快使用它(它尚未发布。截至撰写本文时,它将在2015年7月20日的3周内发布) 。如果您需要移动或桌面应用程序,则必须坚持使用完整的.NET 4.6 / 4.5 Framework,然后您的应用程序将需要在您的PC上安装相应的.NET Framework才能使用该应用程序。

即。你不能将EntityFramework 6.x与CoreFx一起使用,因为它取决于完整的.NET框架实现,EF 7.x不支持所有Db提供程序,也没有6.x的所有功能。

这很快就会发生变化。如果您使用它,请注意其局限性。

查看此问题的corefx问题跟踪器,解决您的确切问题:

https://github.com/dotnet/corefx/issues/165

  
      
  1. 您是否可以在目标VS2015中创建桌面程序   .NETCore 5或.NETFramework 4.6(它们是独立的吗?)。对   现在在VS2013中,您似乎只能在创建时定位.NETCore   Windows应用商店。在创建时,我似乎无法以.NETCore为目标   桌面应用程序。

         
        

    .NET Core目前主要关注服务器端场景,没有像WinForms / WPF等GUI技术。另一方面,.NET Framework 4.6包含所有内容,因此您可以使用它创建桌面应用程序。

      
  2.   
  3. .NETCore 5是否需要为.NETCore程序安装运行时   在目标计算机上工作(无论是windows,mac还是   linux),或者我能否将运行时包含在内   程序

         
        

    .NET Core可以与您的应用程序一起部署,因此不需要安装运行时。

      
  4.   
  5. 如果需要安装,这会带给我另一个问题   .NETCore运行时,将安装.net Framework 4.6安装程序   .NETCore 5用它(仅限Windows)?

         
        

    见2.

      
  6.