环境:在3.5框架下面开发的wpf程序。
需求:要使改程序 实现在3.0版版本的框架下 或 没有.net框架下 安装运行。
提示:
    在网络上搜索得到两种方案但都不是很理想
    1.使用postbuild2010这个软件 将框架和程序还有关联的dll打包到一起,生成一个可执行程序。【配置里面的runtime把3.5sp1选上,然后生成输出.】
    2.使用VS 创建一个新建安装部署项目。【在解决方案管理器,右击你的解决方案名称,选择属性:打开的属性页中,选择"系统必备", 在打开的系统必备页中,在"指定系统必备安装组件的位置"中选中如下选择项:从与我的应用程序相同的位置下载系统必备组件。选上以后,在生成的安装文件包中包含.NetFramework组件。】
    
    以上两种情况都试过了!不是很理想!请问还有没有其他办法啊!谢谢啊!

解决方案 »

  1.   

    其他还有InstallShield,Wise installer,不过估计你还是会觉得"不是很理想!"。
      

  2.   

    http://liyb5619.blog.163.com/blog/static/10788223120091114349526/
    我曾经做过的使用Setup Factory 7.0
      

  3.   

    打包软件如inno setup
    框架必须要
      

  4.   

    通过MageUi.exe修改通过ClickOnce发布过的WPF browser application 配置文件 
     发布    WPF    browser    application    配置文件     
    VS2008提供了ClickOnce功能方便开发人员发布和部署应用程序。但是,对于 WPF browser application,一旦发布后,你想去修改 app.config以改动里面的数据库连接字符串或者服务调用地址协议等,你必须修改app.config文件然后通过publish功能重新发布。 因为ClickOnce对于发布的应用程序的manifest和xbap文件都经过hash算法打上标签并签名过以保障应用程序文件的版本一致性和安全性。但是如果我们给客户发布了应用程序,客户想修改服务地址的话,让客户自己去pulish程序是不可能的。我经过了几天摸索,发现了mageUI.exe这个工具是可以完成重新hash和签名的,只要更新版本客户端就会检索到版本更新并下载新版本。具体做法如下:WPF browser application 发布目录的程序结构一般是这样的:PublishedFolder\MyApp.xbapPublishedFolder\setup.exePublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.xbapPublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.exe.manifestPublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.exe.deployPublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.exe.config.deployPublishedFolder\Application Files\MyApp_0_0_0_1\otherDependedLib.dll.deploy1.    首先修改PublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.exe.config.deploy, 这个可以用文本编辑器直接修改或者用WCF 的SvcConfigEditor.exe来修改;2.    找到mageui.exe这个工具,一般位于C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin 或者C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin;3.    修改应用程序发布目录的manifest和xbap文件我们用mageui.exe工具来打开PublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.exe.manifest和 PublishedFolder\MyApp.xbap  因为WPF Brower Application一般是需要证书的,那我们先设置一下默认证书。 File->Reference, 选中 “Sign on save” 和 “Use default signing certificate” ,然后找到你的证书文件填充“Certificate file”  3.1 首先修改SLC.MES.exe.manifest文件,将Name->Version增加一个版本号(版本一定要变化,否则客户端不会重新下载); 3.2 保存该文件,这时候如果你的证书有密码保护,会弹出一个警告对话框,因为刚才的设置里是没有设置缺省密码的地方的。不过没关系,我们在随后弹出的对话框里填入密码即可。   3.3 然后修改发布根目录下的MyApp.xbap。注意不是PublishedFolder\Application Files\MyApp_0_0_0_1\ MyApp.xbap,虽然这2个文件完全一样,但实际起作用的是根目录下的那个。  3.4 首先同样将Name->Version增加一个版本号   3.5 然后点击“Application Reference”里的Select Manifest按钮,重新选择一下刚才的那个manifest文件  3.6 同样存盘 现在客户端IE里重新访问即可下载新版本。