none
怎么打包成1个完整的可以运行的exe? RRS feed

  • 问题

  • 我想给打包给 别人运行,最好是1个exe文件直接运行。不用再去下net framework!

    要详细的步骤啊。

    直接用vs2010的发布会自动下net framework,有的还莫名其妙的运行不了。。。

    还有混淆是vs2010自带吗?


    2011年6月30日 9:45

答案

  • 我这里使用的是英文版的vs,各个操作项在中文版里的翻译不知道具体是什么样子,不过按照意思你应该可以找到对应的操作项。

    1. 打开Publish(发布)页面,此页面在项目属性页中可以找到。

    2. 打开File Associations(文件关联)配置页面,按照下面的格式进行填写:

    extension=".hei"(直接填写hei,前面的。号回自动为你加上的)

    description="hei Document"

    progid="hei.Document"

    defaultIcon="hei.ico"

    3. 这样配置下来,安装之后你可以使用下面语句来取出文件路径,然后进行文件操作(显示或编辑)

    AppDomain.CurrentDomain.SetupInformation.ActivationArguments

    你只需要更改文件和发布程序的版本号,ClickOnce会将你的程序正确的安装升级,所以你不必去判断是否有旧版本存在。

    关于第三方的工具的使用,此论坛不适合做出讨论,所以请到该官方支持的地方寻求专业帮助。

     

    我认为你的原始问题已经解决了,如果有新的问题,请另开新帖进行讨论。


    Mike [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 黑心 2011年7月7日 9:32
    2011年7月7日 8:47
    版主

全部回复

  • MSDN 里有一篇文档,专门介绍怎样打包发布一个Windows应用程序,上面有详细的操作步骤:

    http://msdn.microsoft.com/zh-cn/library/k3bb4tfd.aspx

    你可以在“系统必备”对话框中设置一些你的应用程序正常运行的必备组件,

    http://msdn.microsoft.com/zh-cn/library/7tx0bw8y.aspx

    “从与我的应用程序相同的位置下载系统必备组件”

    这个选项会帮助你把必备组件(包括你提到的.net framework安装包)一起打包。

    你所说的有时候莫名其妙的不能运行,这有可能是系统在安装一些必备组件的时候出错,导致整个安装过程失败,这时你可以尝试先单独安装必备组件,来排除出问题的组件。

    如果是系统在安装.net framework的时候出错,那你可以到下面这个论坛寻求.net framework安装方面的帮助: http://social.microsoft.com/Forums/zh-CN/2212/threads

    visual studio自带的代码混淆器是Dotfuscator


    Mike [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年7月1日 10:56
    版主
  • 这个似乎是 安装程序啊

    能打包成可以直接运行的exe吗? 选择哪个?

    2011年7月4日 5:56
  • VS内置的部署方案没有此功能。

    你可以使用压缩工具做一个自解压包,来使得压缩包解压完毕即执行你的主程序,你可以将文件解压到系统的临时目录,或某个固定目录。

    其实,你需要的这个部署方案需要你去使用虚拟化部署,

    这也许会让你使用第三方的部署工具和方案,下面这两个产品是用作虚拟化部署解决方案的,你可以考虑使用。

    http://www.molebox.com/

    http://www.vmware.com/products/thinapp/overview.html

    如果你对虚拟化部署有什么疑问,你需要到工具所属的公司的官方论坛需求专业的帮助,这样你会更快更好的解决你的需求。

     


    Mike [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    此回复包含了指向第三方的网址信息. Microsoft提供此链接以帮助您了解更多信息.此链接不受控于Microsoft且此链接包含的任何软件与信息未经验证.故Microsoft无法保证其质量,安全性以及稳定性.从互联网获取软件与信息有潜在的危险, Microsoft提醒您知悉此风险.

    2011年7月4日 10:14
    版主
  • 解决了,直接用VS2010的发布功能就好了,

     

    选择 这个选项   “从与我的应用程序相同的位置下载系统必备组件”。

    但是我还有个问题。

    如何混淆呢?

     


    2011年7月6日 4:25
  • 免费的混淆软件: http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx

     


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年7月6日 7:02
    版主
  • 这个能用于WPF吗?不会影响发布?

    是发布后再混淆,还是发布钱混淆。

    发布前混淆,那代码不就乱了吗?自己也看不懂啦?

    2011年7月6日 8:23
  • --〉这个似乎是 安装程序啊
    --〉能打包成可以直接运行的exe吗? 选择哪个?
    --〉解决了,直接用VS2010的发布功能就好了
    发布功能是使用ClickOnce部署方案的,它不会生成你所说的“可以直接运行的exe”(而且他的部署文件比SetUp项目还要多),你的第一个描述一般是使用虚拟化部署技术。
    从你的这三句话描述感觉你是想生成exe文件的要求似的。
    不管怎样,你说你解决了自己的问题,那很高兴。
    你提到的代码混淆,是在程序编译之后进行的,它要做的事混淆msil代码,使其很难被再反射分析成.net高级语言源代码供程序员阅读,即在一定层面上给软件的逆向工程带来一定的阻碍来拉长产品被破解的时间。
    有一篇中文的博文描述过代码混淆的步骤,你可以参看一下:

    Mike [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.


    2011年7月6日 10:33
    版主
  • --〉这个似乎是 安装程序啊
    --〉能打包成可以直接运行的exe吗? 选择哪个?
    --〉解决了,直接用VS2010的发布功能就好了
    发布功能是使用ClickOnce部署方案的,它不会生成你所说的“可以直接运行的exe”(而且他的部署文件比SetUp项目还要多),你的第一个描述一般是使用虚拟化部署技术。
    从你的这三句话描述感觉你是想生成exe文件的要求似的。
    不管怎样,你说你解决了自己的问题,那很高兴。
    你提到的代码混淆,是在程序编译之后进行的,它要做的事混淆msil代码,使其很难被再反射分析成.net高级语言源代码供程序员阅读,即在一定层面上给软件的逆向工程带来一定的阻碍来拉长产品被破解的时间。
    有一篇中文的博文描述过代码混淆的步骤,你可以参看一下:

    Mike [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.


    恩,没搞成exe。

    现在发布的是 《ClickOnce 应用程序引用》,反正也能安装运行了!

    1. 我设置了我的WPF程序 关联*hei类文件,双击hei文件,我的wpf程序是打开了,但是并没有打开hei文件,这个如何解决呀? 

    2. 免费的混淆软件: http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx

    这个混淆软件怎么用啊?按照说明,拖过去,一点反应也没有啊??

    3. 还有怎么判断我的程序,已经被安装过了,要提醒他先卸载,再重新安装



    2011年7月7日 2:22
  • 我这里使用的是英文版的vs,各个操作项在中文版里的翻译不知道具体是什么样子,不过按照意思你应该可以找到对应的操作项。

    1. 打开Publish(发布)页面,此页面在项目属性页中可以找到。

    2. 打开File Associations(文件关联)配置页面,按照下面的格式进行填写:

    extension=".hei"(直接填写hei,前面的。号回自动为你加上的)

    description="hei Document"

    progid="hei.Document"

    defaultIcon="hei.ico"

    3. 这样配置下来,安装之后你可以使用下面语句来取出文件路径,然后进行文件操作(显示或编辑)

    AppDomain.CurrentDomain.SetupInformation.ActivationArguments

    你只需要更改文件和发布程序的版本号,ClickOnce会将你的程序正确的安装升级,所以你不必去判断是否有旧版本存在。

    关于第三方的工具的使用,此论坛不适合做出讨论,所以请到该官方支持的地方寻求专业帮助。

     

    我认为你的原始问题已经解决了,如果有新的问题,请另开新帖进行讨论。


    Mike [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 黑心 2011年7月7日 9:32
    2011年7月7日 8:47
    版主