精华内容
下载资源
问答
  • 最近VS2005的打包程序对一个Web程序进行打包,在Win7系统中进行安装,总是出错错误,直接双击安装程序,就弹出: 在Xp的机器上安装是好的,换另外一台Win7的机器,进行安装,竟然也是好的。由此证明,安装程序...

     最近用VS2005的打包程序对一个Web程序进行打包,在Win7系统中进行安装,总是出错错误,直接双击安装程序,就弹出:

    clip_image002

         在Xp的机器上安装是好的,换另外一台Win7的机器,进行安装,竟然也是好的。由此证明,安装程序肯定是没有问题,有可能是两台机器的设置不同而导致的。但是它又没报具体是什么错误导致的。只好在Windows的系统日志中去找,幸好有相关的记录。

    clip_image004

         找到来源为“MsiInstaller”的那条信息,双击

    clip_image006

         看到上面显示“安装成功或错误状态:1603”,和其他电脑上安装成功的消息一对比,发现安装成功的返回的是0而不是1603,好,那就在网上搜索安装时返回1603的错误。

          结果别人说这个错误是一个非常抽象的错误,在安装过程中遇到很多问题后都会返回这个错误,根本不具体。最后找到一个外国人的文章,说是启动一下安装程序的日志,你安装的时候,就会在C:\Users\用户名\AppData\Local\Temp中生成一个msi*.log的日志文件。查看这个日志文件,里面有详细的记录。

          一般的电脑在默认的情况下,并不会去记录这个日志文件,需要修改注册表的选项,启动附件中的“命令提示符”,运行以下命令

       1: reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer" /v Debug /t REG_DWORD /d 7 /f 
       2:  
       3: reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer" /v Logging /t REG_SZ /d voicewarmupx! /f
       4:  

          然后重新启动你的安装程序,它肯定还是有错误,不能安装,不过不要紧,你再查看你的C:\Users\用户名\AppData\Local\Temp中,就会生成一个msi*.log的日志文件。例如,我的电脑上生成的是下面的日志文件:

    clip_image008

         打开这个日志文件。查找“return value 3”,如果是中文的操作系统,就查找“返回值 3”,找到后,查看这句话,上面的几行,那里就是具体的错误信息。

    clip_image010

        我的上面报的错误是

    SetTARGETSITE  CustomAction WEBCA_SetTARGETSITE returned actual error code 1603

        我就搜索这个错误,在这个网站http://social.msdn.microsoft.com/Forums/zh-CN/winformssetup/thread/a62d76f1-1b1f-4609-8779-555cac8329f4找到了一个答案

    clip_image012

         解决方法就是把IIS设置成兼容IIS6.我们知道win7系统中的IIS都是7.0及以上版本,我是用VS2005进行打包的,又因为是Web程序,所以它可能需要在IIS6兼容的模式下进行工作。

         我尝试一下,在控制面板中,打开“添加或删除Windows功能”,用两台电脑进行对比,发现,果然能成功安装的电脑中,已经设置了IIS6兼容,不能成功安装的没有设置。我在那台安装失败的电脑上进行了设置,让它兼容IIS6,打上勾即可。

    clip_image014

        再重新安装应用程序,安装成功。问题顺利的解决。

     

    需要注意的问题:

    1. 大家在查看日志文件的时候,会发现里面有这样的语句:

    VSDNETURLMSG = 此安装程序需要 .NET Framework 版本 2.0.50727。请安装该 .NET Framework 版本,然后重新运行此安装程序。可以从 Web 获得 .NET Framework。要立即做此事吗?

    Property(C): VSDIISMSG = 此安装程序需要 Internet Information Server 4.0 或更高版本,以及 Windows NT 4.0、Windows 2000 或更高版本。此安装程序无法安装在 Windows 95、Windows 98 或 Windows Me 上。请安装 Internet Information Server,然后重新运行此安装程序。

    Property(C): VSDUIANDADVERTISED = 不会安装该公布应用程序,因为它可能不安全。请与管理员联系将程序包的安装用户界面选项更改为基本。

    Property(C): VSDNETMSG = 此安装程序需要 .NET Framework 版本 2.0.50727。请安装该 .NET Framework 版本,然后重新运行此安装程序。

    Property(C): VSDINVALIDURLMSG = 指定的路径 '[2]' 不可用。Internet Information Server 可能并未运行或者是路径已重定向到另外的计算机。请检查 Internet Services Manager 中虚拟目录的状态。

    有很多人就误以为是FrameWork的版本不对,我发现,就算是成功安装,它的日志文件里面也会出现这些信息,这就证明,这不是错误的原因。所以大家在找错误的时候,记得一定要去查找“reutrn value 3”的前面几行,或者是“返回值 3”的前面几行,这才是真正的错误的地方。

     

    2.为了让系统记录安装的日志文件,我们修改了注册表,增加了两个键,用完之后,如果你怕以后产生一些不必要的垃圾日志文件,最后是把这两个键给删掉,以后不让它记录日志文件,删除的方法是,运行以下命令

    reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer" /v Debug /f

    reg delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer" /v Logging /f

     

    参考文章:

    http://blogs.msdn.com/b/astebner/archive/2005/03/29/403575.aspx

    http://blogs.msdn.com/b/astebner/archive/2008/02/27/7927123.aspx

    http://social.msdn.microsoft.com/Forums/zh-CN/winformssetup/thread/a62d76f1-1b1f-4609-8779-555cac8329f4

    http://social.msdn.microsoft.com/Forums/zh-CN/windowsgeneraldevelopmentissues/thread/d01e1909-4ae3-4009-a7a6-81038053695f

    转载于:https://www.cnblogs.com/liuyuanhaoliu/archive/2012/10/20/2731830.html

    展开全文
  • 相信这样经历的朋友肯定可以理解我为什么还要将已经编译好的.exe程序更进一步的编译为安装程序,因为一般而言本机打包的是基本不会出现什么问题的,但是一旦拿到服务器上使用或者在其他机器上使用的时候很容易出现...

    原文地址:https://www.cnblogs.com/ssh2/p/3463199.html
    下面的文章是介绍如何将自己编写的swing应用程序打包为.exe的可执行程序,进而编译为.exe的安装程序。相信有这样经历的朋友肯定可以理解我为什么还要将已经编译好的.exe程序更进一步的编译为安装程序,因为一般而言本机打包的是基本不会出现什么问题的,但是一旦拿到服务器上使用或者在其他机器上使用的时候很容易出现jre或者版本问题导致程序不能正常运行,那么最简单的办法就是让程序自己附带jre运行,那样在什么地方运行他都是使用自己附带的jre来运行,这样就可以大大降低故障率了。

    需要注意的地方,我当前使用的IDE为MyEclipse8.6,编译环境为jdk1.6,系统编码UTF-8

    新建java Project 命名为SwingTest,选择jre为1.6,然后直接finish

    在src下建立包com.swing.test
    并且在该包下新建类Start

    然后书写如下代码:

    然后右键 Run as-------Java Application

    可以看到,这个简单的例子是可以跑起来的

    接下来将此项目导出为可执行jar,
    在项目名上右键—Export…

    然后选择java–Runnable JAR file 然后选择next

    然后在Launch configuration下选择当前的项目,这里显示的格式是[包含有main函数的类名 - 项目名]
    然后在下面选择输出文件夹,这里我们选择Browse…
    然后选择桌面,在桌面上新建一个文件夹src1
    将生成的可执行jar输出到此文件夹

    其他保持不变,finish即可
    这个时候src1下面就有了可运行jar文件

    =======================
    接下来打开exe4j(我的版本是4.5.2,文章末尾我会附加改版本软件下载地址),如果是未注册的话建议注册一下,百度exe4j注册码,然后点击change license,
    公司和姓名都可以随便填,将注册码放入最后一行,如果不注册会有讨厌的弹框。
    我这里附上一组注册码
    A-XVK258563F-1p4lv7mg7sav

    A-XVK209982F-1y0i3h4ywx2h1

    A-XVK267351F-dpurrhnyarva

    A-XVK204432F-1kkoilo1jy2h3r

    A-XVK246130F-1l7msieqiwqnq

    A-XVK249554F-pllh351kcke50

    A-XVK238729F-25yn13iea25i

    A-XVK222711F-134h5ta8yxbm0

    A-XVK275016F-15wjjcbn4tpj

    A-XVK275016F-15wjjcbn4tpj

    打开后直接选择Next

    这里选择“JAR in EXE" mode
    如果选择regular mode会导致最终的结果报java.lang.ClassNotFoundException: com.swing.test.Start

    这里填写本次相对于exe4j的项目名称,随意了,这时在桌面新建文件夹src2
    然后这里选择src2,这个是你EXE程序生成的文件夹。

    接下来只需要在Executable name中填写你生成好之后,后缀名为.exe的程序叫什么名字
    我这里写Start,即会生成Start.exe
    其他均不改动,保持默认,下面的一项Icon File可以定义程序图标,不能将其他图片直接
    更改后缀名后选择,必须使用图标软件生成后缀名为ico的文件,或者选择本来就是ico的文件,
    这里暂且不选

    然后点击右侧小加号,
    Entry type选择为Archive
    Detail选择为src1下面的start1.jar
    然后ok

    在Main class这里栏选择启动类,这里当然是com.swing.test.Start

    接下来配置程序运行要求最低jre版本和最高jre版本

    这个时候需要准备一个jre,之所以单独准备jre是为了考虑有些用户点上可能没有jre,
    也为了程序具备最高兼容性,所以我们让我们的程序使用自己的jre
    将准备好的jre文件夹放入src2文件夹
    选择下面的Advanced Options—Search sequence

    默认会看到一些配置,将这些配置全部删除,一个都不留

    然后点击右边的加号,
    Entry type选择Directory
    然后选择src2下的jre7

    结果如下

    然后选择Next–选择VM不管,默认即可–Next–下一个界面继续Next----

    这个时候再点击next就开始将jar打包为exe了

    完成后选择exit,弹出的框选NO

    这个时候EXE程序就可以直接运行了,继续下一步

    ==================
    打开 Inno Setup 5(我的版本是5.5.2,文章末尾我会附加该版本的下载链接)

    选择 下一步

    这里我只更改了”应用程序名称“为Start,
    其他信息随自己喜好,这里暂不更改,选择下一步

    接下来的这一步不做任何更改,继续选择下一步

    这一步应用主执行文件选择刚刚生成在src2下的Start.exe, 然后添加文件夹,
    选择src2,会询问你是否包含子文件夹,选择是,包含所有文件夹,继续下一步

    这里我不做什么更改
    继续下一步

    一般程序在安装的时候都会有一些安装提示、或者版权声明,用户同意才继续安装程序,
    这里就是用来将你想要显示的信息打包进程序,我在src1下面新建了三个文本文档
    1.txt
    2.txt
    3.txt
    里面随便写一句话即可,继续下一步

    这一步默认不做改变,继续下一步,

    在桌面新建文件夹 outexe
    然后将编译器输出文件夹选择为outexe
    其他不做改变,
    对下面三个参数稍作说明:
    编译器输出基本文件名,即本次打包后在outexe文件夹中生成的文件名
    自定义安装图标,这里跟前面一样,要ico文件,当然你选了就会是你这个图标,如果你不选生成
    后的图标也不会是你在exe4j里选的图标
    安装密码一般不使用,设置了的话,要想安装本程序就需要输入安装密码
    继续下一步

    这一步默认选中,继续下一步

    这里选择完成

    这里选择是

    这里我一般选选择 否

    现在就开始打包安装程序了

    等待一会,安装程序就制作好了,就跟你平时见到的那些安装程序一样。

    看到这个说明打包完成,好了,去看看自己制作的安装程序吧!

    ================================================
    PS:
    1、JRE的大小一般在80M左右,打完包后大概有20多M,我个人还算是可以忍受,网上有很多精简JRE的教程,
    可以尝试精简自己的JRE来缩小最终程序的大小,我比较笨,就不精简了。
    2、EXE4J下载地址:http://pan.baidu.com/s/1j9d7a
    3、Inno Setup 5下载地址:http://pan.baidu.com/s/1y2kgW

    展开全文
  • 就java本身而言,这并没有什么难的,但因为了mysql这个烂东西,让我研究打包就打了一个多周,而网上的有些方法,看似很详细,其实会遇到很多错误,以下是本人经过简化之后的步骤,不要问为什么,多打几遍你

    http://blog.csdn.net/ljz2009y/article/details/7707237

    最近做了一个桌面程序,用到了mysql数据库,最后要实现程序打包成安装文件。就java本身而言,这并没有什么难的,但因为有了mysql这个烂东西,让我研究打包就打了一个多周,而网上的有些方法,看似很详细,其实会遇到很多错误,以下是本人经过简化之后的步骤,不要问为什么,多打几遍你就知道了:

    1.你要下载installanywhere,去Google上搜一下就有,还有破解方法(一定要破解,虽然不破解也能打包,但你会发现一段时间后就不能用了)。

    2.要下载绿色版的mysql,一定要用绿色版的,否则会带来很多不必要的麻烦。搜一下csdn上就有。

    3.把你要打包好的东西全部放在同一个文件夹下,我们暂且叫这个文件夹叫做abcde。其中,mysql绿色版解压后改名为mysql(不是必需的,只是为了书写方便),然后将mysql文件夹放在abcd目录下。

    4.打开mysql,查看有没有一个叫做my.ini的文件,没有的话创建一个。我的my.ini内容如下:

    [client]

    port=3306

    [mysql]

    default-character-set=utf8
    [mysqld]         
    basedir=D:/Program Files/CharacterWeb/MySQL     
    datadir=D:/Program Files/CharacterWeb/MySQL/data 

    default-character-set=utf8

    最重要的是
    basedir=D:/Program Files/CharacterWeb/MySQL     
    datadir=D:/Program Files/CharacterWeb/MySQL/data 

    这个会指导系统区注册你的mysql服务,不过最好改成如下形式:

    basedir=$INSTALL_DIR$/MySQL     
    datadir=$INSTALL_DIR$/MySQL/data 

    $INSTALL_DIR$是installanywhere传的参数,即你的安装路径

    5.打开installanywhere,新建一个基本模板,保存路径,点击下面的AdvancedDesigner(有两种形式,一种是向导形式的,一种是详细设置,这里我们用详细设计)

    之后会看到如下界面:

     

    在project---info中写上自己的软件名(记住,这里面的大多数东西都是不用配置的),在project--Locales中选择安装语言。

    6.如下图所示,点击AddFiles加入整理好的abcd文件夹下的所有文件夹和文件(不包括abcd文件夹本身)

    点击一下SetClasspath,否则完成后将找不到程序的入口。右边还可以选择你的软件安装好后的图标。

    7.下面的这一部分是重点,往往都会在这上面出错:

    上面显示的一个个都是通过AddAction添加的行为,也就是安装过程中所要发生的一些事,比如使用前说明,mysql注册,mysql服务启动等等.下面是我测试成功的顺序,改变后可能会出错:

    (1)新建一个ActionGroup,用来存放你新建的Action

     

    (2)新建一个Execute Script/Bach file

    里面然后再下面填充内容(直接拷贝就行了):

    Comment:  删除服务执行文件项

    Script:   REG Delete HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Mysql /v ImagePath /f

    (3)新建第二个Execute Script/Bach file

    里面然后再下面填充内容(直接拷贝就行了):

    Comment:  MySQL注册

    Script:   Call "$USER_INSTALL_DIR$/MySQL/bin/mysqld.exe" -install Mysql --defaults-file="$USER_INSTALL_DIR$/MySQL/my.ini"

    (4)新建第三个Execute Script/Bach file

    里面然后再下面填充内容(直接拷贝就行了):

    Comment:  添加服务执行文件项

    Script:  REG add HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MySQL /v ImagePath /t REG_EXPAND_SZ /d "$USER_INSTALL_DIR$/MySQL/bin/mysqld.exe /"--defaults-file=$USER_INSTALL_DIR$/MySQL/my.ini/" MySQL"

    (5)新建startWindowsService

    (8)最后一步,按图例选择即可,然后点击Build Project即可:

    到这里基本上就完成了,点击TryInstaller试着安装一下。

    另外,还有一个问题,有的同志喜欢打包前将数据也一块打进去,这样mysql就不用再导入数据了,有的人一定会想用脚本控制,我感觉太麻烦,脚本老是出错,所以我想了另一个办法,那就是先按上述方法安装好,用图形工具把数据倒入mysql,然后把安装好的目录下的mysql整个目录覆盖abcde下的mysql目录,再重新打一遍就ok了,这样用户安装完后数据就可以直接用了。

     

    (本人新手,不足之处,多多指正)

    0
    0

    我的同类文章


    展开全文
  • 的VS2019,怎么在打包安装包中加入卸载程序,每次都是去控制面板中找,很不效率啊 软件每次更新,都要进控制面板,卸载,找到图标,再卸载。好慢 由于是新手,请稍微耐心点,多说一点详细的,比如在哪里添加,添加...

    用的VS2019,怎么在打包安装包中加入卸载程序,每次都是去控制面板中找,很不效率啊
    软件每次更新,都要进控制面板,卸载,找到图标,再卸载。好慢
    由于是新手,请稍微耐心点,多说一点详细的,比如在哪里添加,添加什么?从哪里找,谢谢

    有一个方案,我是单独自己写的卸载程序。
    因为上一个打包后。
    我的拖动事件和另一个通知事件冲突(这个UAC权限导致的。反正目前来说好像无解,是windows的bug。)

    我是自己写的卸载程序,然后在开始菜单里创建一个卸载程序的快捷方式,以下代码可以直接copy
      [ComImport]
            [Guid("00021401-0000-0000-C000-000000000046")]
            internal class ShellLink
            {
            }
            [ComImport]
            [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
            [Guid("000214F9-0000-0000-C000-000000000046")]
            internal interface IShellLink
            {
                void GetPath([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszFile, int cchMaxPath, out IntPtr pfd, int fFlags);
                void GetIDList(out IntPtr ppidl);
                void SetIDList(IntPtr pidl);
                void GetDescription([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszName, int cchMaxName);
                void SetDescription([MarshalAs(UnmanagedType.LPWStr)] string pszName);
                void GetWorkingDirectory([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszDir, int cchMaxPath);
                void SetWorkingDirectory([MarshalAs(UnmanagedType.LPWStr)] string pszDir);
                void GetArguments([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszArgs, int cchMaxPath);
                void SetArguments([MarshalAs(UnmanagedType.LPWStr)] string pszArgs);
                void GetHotkey(out short pwHotkey);
                void SetHotkey(short wHotkey);
                void GetShowCmd(out int piShowCmd);
                void SetShowCmd(int iShowCmd);
                void GetIconLocation([Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszIconPath, int cchIconPath, out int piIcon);
                void SetIconLocation([MarshalAs(UnmanagedType.LPWStr)] string pszIconPath, int iIcon);
                void SetRelativePath([MarshalAs(UnmanagedType.LPWStr)] string pszPathRel, int dwReserved);
                void Resolve(IntPtr hwnd, int fFlags);
                void SetPath([MarshalAs(UnmanagedType.LPWStr)] string pszFile);
            }

     private void CreatShortcut()
    {
              IShellLink link = (IShellLink)new ShellLink();
                link.SetDescription("程序描述");
                link.SetPath(卸载程序路径); //指定文件路径

                IPersistFile file = (IPersistFile)link;
               string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.StartMenu);
                string sfile = Path.Combine(desktopPath, "卸载XXXXX程序.lnk");
                if (File.Exists(sfile))
                    File.Delete(sfile);
                file.Save(sfile, false);
    }

    我之前按照一个帖子添加了windows中某个文件,在我的电脑上是可以卸载了,但是打包给别人小蜜蜂论坛回帖机后别人就无法卸载

    这个问题我可以回答你,你要把systme32下的msiexec.exe copy到安装目录下,要给别人也装上去,就行了吧。

    展开全文
  • 如何NSIS打包程序

    千次阅读 2018-08-23 11:31:32
    假如你一个很棒的程序,能实现许多有趣的功能,你该怎么分享给你的好友呢,如果让你把庞大的工程传给他,我的天,那得传到什么时候? 于是,学会打包程序也成为程序员的一个必备技能了 在这里我的是:NSIS...
  • 假如你一个很棒的程序,能实现许多有趣的功能,你该怎么分享给你的好友呢,如果让你把庞大的工程传给他,我的天,那得传到什么时候? 于是,学会打包程序也成为程序员的一个必备技能了 在这里我的是:NSIS...
  • 将java swing写的程序打包exe可执行程序 ... 下面的文章是介绍如何将...相信这样经历的朋友肯定可以理解我为什么还要将已经编译好的.exe程序更进一步的编译为安装程序,因为一般而言本机打包的是基本不会出现什么...
  • 网上都是对asp .net core程序的...但是我的项目是framework的 就安装不了这个包 请问没有什么好的办法 <p><img alt="" height="80" src="https://img-ask.csdnimg.cn/upload/1623741114924.png" width="1040" /></p>
  • java 做的桌面程序可以打包成EXE,但能打包成MSI安装吗?如果可以,要怎么做,没有什么好的...我自己知道可以先打包成EXE,然后再工具转换成MSI,但不知道JAVA桌面程序能不能打包成MSI来安装呢?
  • 假如你一个很棒的程序,能实现许多有趣的功能,你该怎么分享给你的好友呢,如果让你把庞大的工程传给他,我的天,那得传到什么时候? 于是,学会打包程序也成为程序员的一个必备技能了 在这里我的是:NSIS...
  • Python程序打包

    2019-09-23 19:07:49
    几年之前就想学习Python,一直没能静下心来学习,前段时间突然想法就立马执行了,一路学过来遇到很多问题,今天突然接触到打包就想着把之前练习的程序拿来打包pip3 install pyinstaller下载安装出现问题 ...
  • 那就打包呗,刚好以前对 Pyinstaller 一点接触,就了一下这玩意。这篇博文主要记录一下基本用法和踩得一些坑。 1. Pyinstaller 打包 Python 程序 首先我们需要安装 Pyinstaller: pip install pyinstaller ...
  • Android程序签名打包

    2021-02-07 16:55:06
    1.什么是签名,有什么用: Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上的,平时我们调试运行时到手机上时,是AS会自动用默认的密钥和证书来进行签名;但是我们实际发布...
  • 相信这样经历的朋友肯定可以理解我为什么还要将已经编译好的.exe程序更进一步的编译为安装程序,因为一般而言本机打包的是基本不会出现什么问题的,但是一旦拿到服务器上使用或者在其他机器上使用的时候很容易出现...
  • 通用软件安装程序1.0

    2010-06-15 10:21:56
    如果一张650M的光盘软件,普通的打包安装工具打包后,你无法看见压缩包内的文件,更无法对其进行操作,假如光盘中一点小瑕疵,势必造成整个光盘软件报废,事实上,我们购买光盘时,经常碰到这样的报废盘,对我们...
  • 1.什么是签名,有什么用: Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到Android手机上的,平时我们调试运行时到手机上时,是AS会自动用默认的密钥和证书来进行签名;但是我们实际发布...
  • VS2005 制作安装程序

    2019-10-05 13:22:39
    1.首先得一需打包的项目,这里我就以前的学习之笔: 2.0 接下来就要新增 安装工程(专案) : 2.1 专案生成后,界面如下: 2.2 接下来当然是要添加需打包的项目了: 说明: 1.专案输出: 打包最核心内容, ...
  • 使用Xcode真机调试时没有任何问题,但是当打包成ipa文件安装时,有接口访问不到后台信息 XcodeUSB连接运行程序和打包成ipa安装程序有什么区别吗? 跪求大神解答
  • 如何把多个软件安装程序做成一个安装程序,然后自动安装.比如说把QQ .播放软件,迅雷等等.或者用什么编制软件合成.要不时候电脑中病毒了,要重装.重装后其它软件也要安装,而且要一个一个来装.这样一来很麻烦,我想请教...
  • docker学习笔记为什么DockerCpu开启虚拟化开启hyper-vDownloaddocker toolsDocker环境Docker命令部署应用导出镜像 ...方便部署 节省了生产环境的部署时间,以后我们的现场程序有问题就可以排除环境...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 323
精华内容 129
关键字:

打包安装程序有什么用