将C#(.NET 2.0)应用程序部署为便携式应用程序?

时间:2009-08-08 07:52:36

标签: c# .net portability

是否可以将.NET 2.0应用程序部署为可移植可执行文件? 这样我的程序就可以在没有在目标机器上安装.NET Framework 2.0的Flash Disk中运行。或者也许可以使用所需的.NET DLL分发我的程序,这样就不需要安装框架了吗?

我知道有一些替代工具可以将我的.NET exe转换为单个本机可执行文件,如RemoteSoft Salamander,Xenocode Postbuild和Thinstall,但不幸的是我买不起。

我也尝试使用Mono的mkbundle嵌入依赖项,但是我把程序弄乱了= \(没有XP视觉风格,破坏了一些控件及其功能)

任何形式的帮助将不胜感激:)

感谢。

fyi:我的IDE是Microsoft Visual C#2008 Express Edition,以.NET Framework 2.0为目标框架。

4 个答案:

答案 0 :(得分:9)

好吧,除了Salamander和Thinstall(现在是VMWare ThinApp)之外,如果你真的想要运行.NET,你必须安装.NET。

可以 运行Mono而无需实际安装它(不是静态链接您的程序,但包括闪存驱动器上的Mono)。我怀疑它会很棘手,因为你必须告诉运行时有关GAC位置的事情。

我在单声道常见问题解答中看不到任何相关内容,但您可能想要ping一个Mono邮件列表 - 这听起来像是一个可能有趣且有用的东西。

答案 1 :(得分:8)

没有;你需要安装框架,或者你提到的工具。

可以看看mono的新静态链接器,但那是关于它的......

答案 2 :(得分:1)

Thinstall非常昂贵,并不适用于所有情况。如果你想在不安装.Net的情况下运行你的应用程序,你可能会遇到麻烦,尽管有一些Xenocode has a tool的工具可以为你做到这一点并且它比瘦机更便宜。

但如果你问我的意见,使用它们是个坏主意。更好地说服您的目标市场安装.Net 2(这几天非常普遍),然后使用更便宜的Obfuscator工具将所有库文件打包到一个文件中(Smartassembly有一个很好的。)

我已经使用了很长时间的Thinstall,而且我已经开发了很多技术,所以没有经验我就不会拍摄。

答案 3 :(得分:1)

我自己没试过,但这是程序:

  • 制作C#项目。
  • 在解决方案资源管理器中,项目内部有一行“参考”。单击它附近的加号。现在您可以看到项目的所有依赖项。删除所有未使用的引用(删除,并尝试运行/构建。如果可以,则不使用。如果有错误,请通过添加它返回它(单击鼠标右键,“添加引用”) “))。
  • 对于每个参考,请转到“属性”,然后在“复制本地”属性中选择“True”。对于每个图像,图标......制作与引用的相似。
  • 重建项目。现在,在Build / Release文件夹(bin中)中,您将看到许多dll文件。这些文件包含每个资源的信息。
  • 将文件夹中的所有文件(从步骤4开始)复制到新文件夹中。
  • 转到文件夹:“\ Microsoft.Net \ Framework \”并将文件“mscrolib.dll”从步骤5复制到新文件夹。如果找不到此文件,则始终可以在包含Windows文件夹的硬盘。
  • 现在您的应用程序是可移植的(包含整个文件夹内容)。

- 资料来源:http://www.codeproject.com/Tips/392308/Csharp-Portable-Exe-File