我写了一个小应用程序,我需要分发到700多台计算机,问题是计算机可以运行任何版本的Windows(尽管很可能是XP或更好)与任何版本的.Net框架安装了互联网连接所有从OC3到拨号。
我考虑过将.Net与我的应用程序捆绑在一起,但.net安装程序至少是39mb,对于拨号的人来说这几乎需要几个小时。
那么有没有办法可以捆绑应用程序需要的特定DLL,或者将整个东西转换为本机代码?
由于 --Mike
答案 0 :(得分:11)
使用安装程序。
Microsoft提供了一个基本解决方案,以便您可以检查依赖项(并在缺少它们时安装它们),以确保您部署应用程序的计算机满足应用程序的最低Framework(和依赖项)要求。
如果您需要更复杂的内容,可以使用Nullsoft Scriptable Install System,InstallAware或InstallShield之类的内容。
请记住,如果您正在创建.NET应用程序,那么用户将需要以某种方式安装运行时。安装程序通过不强制您将.NET安装程序与您的应用程序捆绑在一起使事情变得更好。它将允许用户在安装时下载.NET运行时。
如果要删除对.NET Framework的依赖性,那么您将不得不将应用程序重写为可编译为本机代码的内容(即使没有安装Framework,NGEN也无法工作)。 / p>
答案 1 :(得分:1)
这是可能的,但不是一种简单或廉价的方式。
例如,请参阅 http://www.remotesoft.com/
答案 2 :(得分:0)
如果他们没有您需要的运行时环境,那么您对.Net解决方案几乎没有好运。使用安装程序,您可以安装适当的运行时环境(如果不存在)。
真的,如果你绝对担心人们下载部分框架,你最好不要使用它。在使用本机代码重写应用程序之前,我会真正看到您的受众,看看他们没有它的可能性,以及它们的连接速度是多少。
如果您不想在本机代码中编写它,您的另一个赌注是使用较低版本的框架。 1.1的市场渗透率将远高于4.0。
答案 3 :(得分:0)
来自Wikipedia(不是绝对权威,但通常对这类事情可靠):
Windows Vista包含.NET Framework 3.0版。
因此,Windows 7也将包括此内容。
因此,您只需担心您的XP客户端。
我最近不得不重新安装Windows XP,当我得到SP3以及所有后续补丁时,我也安装了.NET 3.5。虽然我正在安装Visual Studio,但我不能100%保证每个人都会安装必要的.NET版本,但它会占很大比例,所以你可能会过度担心。
答案 4 :(得分:0)
不要使用.NET。如果您无法控制环境,需要广泛分发,并且不希望需要30 MB的下载,那么您几乎无法使用本机代码。你最好的选择是C ++。
或者,正如其他人所建议的那样,您可以尝试使用像Remotesoft这样的东西。