首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vb.net VS2005应用程序Mono在Windows上的最小运行时间?

Vb.net VS2005应用程序Mono在Windows上的最小运行时间?
EN

Stack Overflow用户
提问于 2008-11-25 17:20:20
回答 2查看 1.6K关注 0票数 2

有没有人知道,或者有一个链接到一篇文章或一步一步的教程,这会告诉我如何发布一个.net单点应用程序的最低安装?完整的Mono包大约是75 MB,但我知道很多都是我不需要的编译器和库。

我只想要最小的运行时文件。

为了一个简单的“Hello”WinForms应用程序,我需要分发哪些文件?

我试着删除文件,直到我想出了一些有用的东西,但它只能在安装了Mono的机器上工作。这是我试过的文件

我为我的应用程序创建了一个目录。在这个目录中,我又创建了两个目录

  • \bin
  • \lib\mono\2.0

\mono\lib\mono\2.0中,我将mscorlib.dll文件放在\bin目录下

  • Accessibility.dll
  • MyApp.exe (这是我在VS2005中做的基本世界)
  • iconv.dll
  • intl.dll
  • libglib-2.0-0.dll
  • libgthread-2.0-0.dll
  • Microsoft.VisualBasic.dll
  • mono.dll
  • mono.exe
  • Mono.Posix.dll
  • System.dll
  • System.Drawing.dll
  • System.Windows.Forms.dll

然后,在\bin目录中,我运行了'mono MyApp.exe‘,它在我的Mono安装的机器上工作,但是没有其他的。

我想要的是一个“xcopy”解决方案,在这个解决方案中,不需要实际安装,但只需要包含运行时文件(就像从一个拇指驱动器运行时一样)。

请注意,这是在Windows计算机上运行,而不是在Linux机器上运行。

我试着运行mkbundle2 (这是一个.net 2.0应用程序)并得到了这个错误

C:\Program文件\Mono-2.0.1\bin>mkbundle2 2 C:\Projects\SingleExeTest\bin\Release\SingleExeTest.exe --deps操作系统是: Windows来源:1自动依赖关系:真正的嵌入: C:\Projects\SingleExeTest\bin\Release\SingleExeTest.exe嵌入: C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\mscorlib.dll嵌入: C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\Microsoft.VisualBasic.dll 嵌入:C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\System.dll 嵌入: C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\System.Configuration.dll 嵌入:C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\System.Xml.dll 嵌入:C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\System.Security.dll 嵌入:C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\Mono.Security.dll 嵌入: C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\System.Windows.Forms.dll 嵌入:C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\System.Drawing.dll 嵌入:C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\System.Data.dll 嵌入:C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\Mono.Data.Tds.dll 嵌入:C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\System.Transactions.dll 嵌入: C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\System.EnterpriseServices.dll 嵌入:C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\Mono.WebBrowser.dll 嵌入:C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\Mono.Posix.dll 嵌入:C:\PROGRA~1\MONO-2~1.1\lib\mono\2.0\Accessibility.dll 编译: as -o tem.o temp.s 未处理异常: System.ComponentModel.Win32Exception: ApplicationName='sh',CommandLine='-c“作为-o tem.o temp.s”, System.Diagnostics.Process.Start_noshell的CurrentDirectory='‘ (System.Diagnostics.ProcessStartIn fo startInfo, System.Diagnostics.Process进程) 0x00000 at System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInf o startInfo, System.Diagnostics.Process进程) 0x00000 at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo ) MakeBundle.Execute (System.String cmdLine) 0x00000在MakeBundle.GenerateBundles (System.Collections.ArrayList文件) 0x00000 at MakeBundle.Main (System.String[] args) 0x00000 C:\Program Files\Mono-2.0.1\bin>\

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-11-25 22:07:45

看来我让它起作用了!

我不得不在c:\mono中安装Mono而不是c:\program files\mono

我想它不喜欢这里的空间。

票数 1
EN

Stack Overflow用户

发布于 2008-11-25 18:02:43

您需要使用"mkbundle“来创建一个可在Windows环境中使用的自包含可执行文件。最终结果是一个可执行文件,它包含您需要的所有Mono库,而没有一个是您不需要的。

查找本网页上的“bundle”标题。它应该能让你走。请注意,这是针对纯Mono应用程序的;它不处理GTK之类的外部依赖项。

编辑从这里开始,

注意:从mkbundle手册页..。

Windows 在Windows系统上,mkbundle需要安装类似Unix的工具链才能工作。您可以使用cygwin和安装gcc,gcc-mingw和作为软件包.

注意,binutils包包含的是。

cygwin可以被发现这里。(我将它安装在我所有的Windows机器上,并强烈推荐它。)还请注意,cygwin只需要在dev机器上使用。它不需要部署到目标上。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/318175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档