none
请教关于WinForm程序发布的问题 RRS feed

  • 问题

  • 我前几天因为面试来这里请教,得到了很多高手的帮助。现在我已经上班两个星期了。在此表示感谢!这是原贴:
    http://social.microsoft.com/Forums/zh-CN/1761/thread/d6d7fecc-6e16-4751-9016-8483840c0c11?prof=required

    我现在用C#编了一个小程序,遇到怎样发布的问题。在网上搜了几个讲解,介绍VS2008中的Set Project。但有一步不太清楚,就是说要把相关的文件都加到“应用文件夹”。到底有哪些文件呢?

    我编的程序并不复杂,项目里边只有三个文件夹:bin、obj和properties。其中bin下边的Debug里有有一个exe,一个exe.config(这里有连接字符串),一个pdb,一个vshost.exe和一个vshost.exe.config。在obj的Debug里也有一个exe文件,一个Interop.Microsoft.Office.Core.dll文件,还有很多别的文件。

    我的问题是:
    1、我要把哪些文件(除了bin\Debug下的exe)加到“发布”项目里的“应用文件夹呢”?
    2、发布之后,用户安装时怎么样修改数据库连接字符串呢(已存在config里了)?

    谢谢!

    2010年5月21日 4:52

答案

  • Publish用的是功能比较少,但是可以从网页上启动的ClickOnce,不是Setup Project。你的项目会从网页上启动吗?

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月21日 14:44
    版主
  • 你好!

         2、menu->Build,里边有Build, Publish等选项,选Build!


    周雪峰
    2010年5月21日 15:15
    版主

全部回复

  • 你好!

         你最好先发布一个正式版本,然后再打包,项目属性-〉生成-〉配置-〉设置为Release,然后把Release文件夹下的文件打包!


    周雪峰
    2010年5月21日 5:17
    版主
  • 首先你要编译一个Release版本的程序,发布Debug版的程序是违反微软的Visual Studio的最终用户许可协议的。

    其次你在solution里面右键单击安装与部署项目的节点,可以选择添加project output,这样Visual Studio自己会给你检测什么文件需要添加到应用程序文件夹。Visual Studio检测不到(例如非托管DLL的依赖项),你可以在solution里面右键单击安装与部署项目的节点,选择文件视图,然后再在文件视图中选择目标目录之后手动添加文件。

    你可以写custom action来提供界面供用户选择数据库和修改config文件,也可以把连接字符串改成user scope的字符串之后自己在应用程序中写界面修改数据库连接设置并保存。



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月21日 13:19
    版主
  • 多谢周雪峰版主!

    我试着按您的提示做了一下。

    1、menu->Project->properties,出现页面包含Application, Build等选项,我修改了其中的Configuration为Release(还用修改别的吗)。

    2、menu->Build,里边有Build, Publish等选项,我选择Publish,在我的程序文件夹里生成了两个文件(一个setup.exe,一个.application)还有一个“Application Files”文件夹。但没找到Release文件夹。

     

    请问我这样做对吗?还需要做什么?

    2010年5月21日 13:31
  • Publish用的是功能比较少,但是可以从网页上启动的ClickOnce,不是Setup Project。你的项目会从网页上启动吗?

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年5月21日 14:44
    版主
  • 你好!

         2、menu->Build,里边有Build, Publish等选项,选Build!


    周雪峰
    2010年5月21日 15:15
    版主
  • 谢谢两位高手的热心回复, 让我先练习一下再来请教。

     

    2010年5月25日 13:57