亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Deployment of VC2008 apps without installing

系統(tǒng) 2705 0

If you create a default CRT/MFC application with VS2008, this application will not run on other computers. You application will complain with
“This application has failed to start because the application configuration is incorrect”.

The problem is that by default VC2008 uses the DLL-version of the CRT/MFC. These DLLs are not pre-installed on any OS.
To overcome this problem, you have tree options:

  1. Statically link to the CRT/MFC
  2. Use ? vcredist_x86.exe ? / ? vcredist_x64.exe ? to install the DLLs in the system
  3. Deploy the CRT/MFC DLLs with your application (in the same directory)

In the following I will explain the last option. Especially in conjunction with VS2008 service pack 1 (SP1). Because this leads to a little bit more compications in ApppLocal deployment.

In general, it is very easy to deploy your application with the needed CRT/MFC DLLs.
Just copy the contents of the directory

  • C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT
  • C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.MFC

into the same directory as your application. Then you should have the following files in your app-folder:

    Microsoft.VC90.CRT.manifest

msvcr90.dll

msvcp90.dll

msvcm90.dll

Microsoft.VC90.MFC.manifest

mfc90.dll

mfc90u.dll

mfcm90.dll

mfcm90u.dll


  

Then your application works on an other computer!

BUT: ? This does ? not ? work, if you installed VS2008-SP1 ? :-(

The problem with VS2008 SP1 is: It overwrites all files in the “VC\redist” directory with the new version. This is not really bad. The problem is: It has a newer version number inside the manifest files. But if you compile your application with VS2008-SP1 it write the RTM-version into the application manifest! Now the version number in your application manifest does not match the version in the “new” CRT/MFC manifest. Therefore it will refuse to load these DLLs and your application cannot start.

The simplest way to overcome this problem is by changing the “Microsoft.VC90.CRT.manifest” and “Microsoft.VC90.MFC.manifest” files. Replace the version attribute in both Microfot.*.manifest files from “9.0.30729.1″ (or whatever version/SP you have) to the version number in your applications-manifest (which is normally “9.0.21022.8″ (RTM)).
Old:

    version="9.0.30729.1"
  

New:

    version="9.0.21022.8"
  

Then your application will work on an OS without installing anything.

Alternatively, you can change your applications manifest, so that it uses the new version number. This can easily done by defining

    #define _BIND_TO_CURRENT_VCLIBS_VERSION 1


  

in stdafx.h (at the top) or in your project settings. This will embed the actual CRT/MFC-version into your applications manifest (works starting with VS2008-SP1).
Also, if you use new features from the MFC-feature-pack, you should always define this!

Just a small note: You should be aware, that this “AppLocal” installation is not really “AppLocal”… it is only AppLocal, if the vcredist_*.exe was ? not ? installed. If the vcredist_*.exe is installed, then the DLLs from the WinSxS directory will be used. If you want to prevent this, you can do a ? really AppLocal deployment .

A small addition: If you write .NET-apps (/clr) you still must install the .NET Framework redistributable.

But the goood news is: Starting with VC2010, ? the manifest (WinSxS) is gone ? ;)

?

from: http://blog.kalmbach-software.de/2009/05/27/deployment-of-vc2008-apps-without-installing-anything/

Deployment of VC2008 apps without installing anything


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲乱码在线观看 | 久久人视频 | 性欧美成人依依影院 | 99精品国产自产在线观看 | 中文字幕日本不卡一二三区 | 模特啪啪 | 激情欧美 | 卡通动漫亚洲综合 | 中国特级黄一级真人毛片 | 久久99国产亚洲精品 | 99精品视频免费在线观看 | 波多野结衣在线一区 | 曰本女人一级毛片看一级毛 | 欧美日韩不卡码一区二区三区 | 2018久久久国产精品 | 精品一区二区三 | 中文字幕天天躁夜夜狠狠综合 | 色视频免费国产观看 | 视频黄在线观看 | 九九99热久久精品在线6手机 | 四虎永久在线精品国产免费 | 老师邪恶影院a啦啦啦影院 老师在办公室被躁到白浆 老湿机午夜影院 | 欧美一二三 | 国产精品视频福利视频网 | 伊人五月天综合 | 亚洲成人免费 | 亚洲国产精品一区二区首页 | 日本不卡视频在线视频观看 | 亚洲综合区小说区激情区噜噜 | 日韩欧美二区 | 性欧美视频在线观看 | 国产免费私人影院永久免费 | 日韩欧美黄色 | 99热都是精品| 欧美成人 一区二区三区 | 狠狠色狠狠干 | 天天综合天天做 | 中文一区在线观看 | 最新亚洲情黄在线网站 | 黄色毛片大全 | 久久久久久久91精品免费观看 |