相关疑难解决方法(0)

适用于.NET应用程序的连接器状态(又名"请先生,我可以拥有链接器"2009版)

这里的很多人可能都熟悉Joel Spolsky最受欢迎的博客文章之一,请主席先生,我可以有一个链接器,在那里他呼吁一种方法来删除.NET框架的依赖关系,这样就可以开发一个独立的应用程序,出售.

Visual Studio开发团队的Jason Zander当时回答了他对这个主题的看法,认为这个话题有点没有意义 - 在运行时(以及其他方面)修复安全问题的能力是他们的主要关注点.总的来说,小开销是值得的.

快进到2009年.现在有几个团体声称拥有C#链接器.(Jason Zander甚至自己说实现它不会花太多时间.)我们现在拥有一个庞大的200-300 mb跨平台完整的.NET 3.5安装程序,而不是可爱的,十几个下载的.NET 1.0.包含用于x86,x64和ia64的.NET版本.微软建议减少运行时间大小包括:

  • 解压缩可再发行组件,删除不需要的目标平台,然后将其重新组合在一起
  • 使用仅为您的平台下载库的Web引导程序
  • 使用具有有限库的Client Profile安装程序(2008年末新增),仅适用于x86

更糟糕的是,正如我所理解的那样(如果我错了请纠正我)客户端配置文件甚至没有注册Windows,因为安装了.NET 3.5.这意味着如果计算机上安装了多个.NET 3.5客户端应用程序,则没有人会看到对方,并且将一次又一次地重新安装运行时!

我真的不知道微软在想什么.即使假设最坏的情况安装将是针对一个目标平台(例如,x64)并且仅需要包括那些库,您仍然在应用程序上查看超过60 MB的开销.即使是最着名的.NET应用程序之一,Paint.NET,由于存在大量的.NET依赖性,因此很难安装应用程序. 如果他们在分发免费应用程序时遇到问题,那么世界其他地方呢?最后,他们必须制作一个安装Microsoft Installer 3.1,.NET运行时引导程序以及所有其他依赖库的引导程序,然后才能安装自己的应用程序.

那怎么样呢.链接器.是否存在任何好的 - 或者只是简单地构建C#应用程序而不需要用户安装大量.NET运行时的工具?

更新:所以,看起来有几个选项:

单声道:

.净:

看起来Mono工具正在使用; 基于.NET的工具怎么样?与他们有任何其他经验,或者我们只是要等待微软将其推向每个人?我不禁想到将.NET 4.0推出需要多长时间......

.net c# vb.net mono linker

70
推荐指数
3
解决办法
6435
查看次数

你能编译C#所以它在运行时不需要.NET Framework吗?

是否有可能强制C#编译器将所有引用的调用拉出框架并将它们打包成dll甚至单个可执行文件?

我喜欢用C#编写快速的"一次性"应用程序,但是我不想在目标机器上准备好后再安装整个框架.

.net c#

29
推荐指数
5
解决办法
2万
查看次数

标签 统计

.net ×2

c# ×2

linker ×1

mono ×1

vb.net ×1