• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            牽著老婆滿街逛

            嚴(yán)以律己,寬以待人. 三思而后行.
            GMail/GTalk: yanglinbo#google.com;
            MSN/Email: tx7do#yahoo.com.cn;
            QQ: 3 0 3 3 9 6 9 2 0 .

            Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案

            轉(zhuǎn)載自:http://xoyozo.me/blog/lnk1201-error-at-every-build.html

            Windows 7 使用 VS.NET 2003 開發(fā)項(xiàng)目時(shí)經(jīng)常會(huì)遇到類似如下錯(cuò)誤:

            TestServer fatal error LNK1201: 寫入程序數(shù)據(jù)庫(kù)“d:\Projects\GameServer\data\TestServer.pdb”時(shí)出錯(cuò);請(qǐng)檢查是否是磁盤空間不足、路徑無效或權(quán)限不夠

            在排除了空間、路徑、權(quán)限等原因后仍然無法順利生成項(xiàng)目,微軟官方也沒有提供相關(guān)的解決方案,Google 了好幾天也找不到網(wǎng)友任何修復(fù)建議,今天偶然發(fā)現(xiàn) MSDN 上一篇帖子,正是討論這個(gè)問題,于是嘗試按照上面的步驟進(jìn)行操作,竟然真的可以!特分享給大家~

            一、首先下載兩個(gè)文件:Handle 和 freepdb;

            二、解壓這兩個(gè)壓縮包,并把“freepdb.cmd”和“handle.exe”兩個(gè)文件移至同一目錄下(如 C:\LNK1201\);

            三、用 VS.NET 2003 打開一個(gè)項(xiàng)目,在解決方案資源管理器中項(xiàng)目文件上點(diǎn)右鍵屬性,展開“生成事件”,點(diǎn)擊“預(yù)生成事件”,在右側(cè)命令行中填入:<path>\freepdb $(ProjectName) ;

            四、完成!運(yùn)行一下看看吧。如果仍然有問題,先雙擊運(yùn)行這兩個(gè)文件試試,因?yàn)槲沂窍冗\(yùn)行后再配置項(xiàng)目屬性的,所以不確定不運(yùn)行會(huì)不會(huì)出錯(cuò)。

            如果上述文件無法下載,請(qǐng)聯(lián)系 xoyozo 索?。ave fun!


            兔子同學(xué)提供了修改后可用的版本,其中包含了Handle.exe和FreePDB.bat:/Files/tx7do/LNK1201.rar

            posted on 2011-02-12 15:08 楊粼波 閱讀(4889) 評(píng)論(16)  編輯 收藏 引用

            評(píng)論

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2011-02-13 09:56 zwp

            感謝啊,這個(gè)問題困擾好久了。
            不過剛剛新建個(gè)項(xiàng)目,又沒有出現(xiàn)上述問題,待重現(xiàn)的時(shí)候一定要試試。
            不過如果一個(gè)項(xiàng)目一個(gè)項(xiàng)目地添加link pre,太麻煩了,我直接放在外部工具里,應(yīng)該也有效。
              回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2011-02-13 10:16 楊粼波

            哦?這樣的么?
            我之前用Windows 7 32位的時(shí)候,有的項(xiàng)目會(huì)有問題,有的不會(huì),很是奇怪,我估計(jì)可能是權(quán)限的問題還是怎樣的。

            但是,我前幾天換到了64位的操作系統(tǒng)以后,就有問題了,奇了個(gè)怪。說實(shí)話,讓我每個(gè)項(xiàng)目都這樣做,我也很煩。
            但是,我現(xiàn)在每調(diào)試一次,就要關(guān)閉一次工程,這很煩人的。  回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2011-02-23 12:33 zwp

            后來發(fā)現(xiàn)還是不行,沒法確定工程生成的pdb文件名以及位置。除非所有的工程都是按照默認(rèn)位置和名字來存放pdb文件。
            于是,只有下了個(gè)GUI版本的procexp,手動(dòng)強(qiáng)制關(guān)閉devenv.exe相關(guān)工程對(duì)應(yīng)的pdb文件句柄。  回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2011-02-23 12:35 zwp

            @楊粼波
            要么自己為每個(gè)工程寫一個(gè)prelink事件,通過命令行強(qiáng)制關(guān)閉被打開的pdb文件句柄,
            要么在調(diào)試后鏈接前用procexp強(qiáng)制關(guān)閉下pdb的文件句柄。
              回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案[未登錄] 2011-02-23 20:59 楊粼波

            都挺煩人的。  回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2011-03-12 16:44 兔子

            freepdb.cmd的代碼里面有問題。我修改了一下?,F(xiàn)在可以了。等我傳上來,這問題困擾我好久了  回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2011-03-12 17:09 兔子

            rem 在預(yù)生成事件里輸入 比如 c:\lnk1201\freepdb.cmd ServerD
            rem ServerD為你的被鎖住的PDB名字,一般來說是exe名字而不是工程名。。。請(qǐng)注意
            rem 不過你要是沒修改輸出exe名字。直接就是工程名也是對(duì)的
            @echo off

            if "%1"=="" (
            echo Usage: freepdb filename
            echo This will free all handles of VS2003 on filename.pdb
            echo Requires the Handle utility from Windows Sysinternals
            goto :eof
            )

            cd /d "%~dp0"


            for /f "tokens=2 skip=5 delims=:" %%a in ('handle -p devenv.exe "%1.pdb"') do (
            rem 尋找pid
            for /f "tokens=1-2" %%b in ("%%a") do (
            for /f "tokens=3 skip=5 delims=:" %%d in ('handle -p devenv.exe "%1.pdb"') do (
            rem 尋找FileID
            for /f "tokens=1-2" %%e in ("%%d") do (
            rem 執(zhí)行關(guān)閉命令
            rem 此時(shí)%%b為pid
            rem 此時(shí)%%f為fileid
            handle -c %%f -y -p %%b %1 > NULL
            )
            )
            )
            )

            exit /b 0
              回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2011-03-12 17:11 兔子

            今天閑著蛋疼。。??偹惆蛇@個(gè)問題解決了。。。。。。。。。。。。。
            網(wǎng)上所有的freepdb.cmd都有問題  回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案[未登錄] 2011-03-13 21:55 楊粼波

            ==!為啥蛋疼呢?  回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2011-04-12 16:49 楊粼波

            根據(jù)我的觀察,每調(diào)試一次,pdb的句柄就增加一次,調(diào)試多次的話,此解決方案無效,縱使關(guān)閉掉了IDE打開的文件句柄,文件卻無法做寫操作。用VS2003在Windows7上面調(diào)試就是一個(gè)巨大的悲劇。
            最好的解決方案是:調(diào)試一次,關(guān)閉一次IDE。  回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2011-10-17 16:22 煙圈

            兔子的版本好使,不過啟動(dòng)的時(shí)候注意要 管理員身份打開 vs  回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2012-01-12 10:27 星爺

            不想以管理員模式運(yùn)行,兔子的版本無效。  回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案[未登錄] 2012-01-14 21:08 楊粼波

            我這里加載了很多dll,dll會(huì)有pdb文件,好像不會(huì)卸載。
            擦,我現(xiàn)在是相當(dāng)相當(dāng)?shù)耐纯啵?br>非常的想把VS升級(jí)上去了。  回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2012-10-19 16:07 李漢文

            我今天下載后用了freepdb,可是我的是一下要打開同樣的應(yīng)用程序幾個(gè)用來生成不同的程序的,然后按照上面說的方法試了以后,只打開一個(gè)還可以,再打開同樣的文件的時(shí)候就出現(xiàn)了問題,前面打開的程序消失了。。。是不是就應(yīng)該freepdb的原因,把我前面那個(gè)程序生成的PDB給刪了??急求解哦@兔子
              回復(fù)  更多評(píng)論   

            # re: Windows 7 使用 VS.NET 2003 時(shí)遇到“LNK1201: 寫入程序數(shù)據(jù)庫(kù)時(shí)出錯(cuò)”的解決方案 2014-04-22 14:45 9527

            好的,管用  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            少妇久久久久久被弄到高潮| 久久香蕉国产线看观看99| 久久天天躁狠狠躁夜夜网站 | 亚洲中文久久精品无码| 久久成人国产精品免费软件| 久久国产劲爆AV内射—百度| 久久青青色综合| 亚洲精品美女久久久久99| 国产精品久久久久影院嫩草| 草草久久久无码国产专区| 久久强奷乱码老熟女| 狠狠综合久久AV一区二区三区| 久久亚洲天堂| 久久综合视频网| 一本色道久久99一综合| 久久久久亚洲AV无码观看| 伊人久久大香线蕉AV色婷婷色| 亚洲人成伊人成综合网久久久| 久久精品国产精品亚洲精品| 国产成人精品综合久久久久| 久久精品国产亚洲AV大全| 欧美久久久久久精选9999| 热综合一本伊人久久精品 | 色老头网站久久网| 欧美精品国产综合久久| 国产69精品久久久久99| 久久久久久久亚洲精品| 韩国无遮挡三级久久| 欧美一区二区三区久久综合| 9久久9久久精品| 人妻精品久久久久中文字幕| 色婷婷综合久久久久中文一区二区| 国产精品一区二区久久国产| 香蕉久久久久久狠狠色| 无码AV波多野结衣久久| 夜夜亚洲天天久久| 99久久超碰中文字幕伊人| 久久免费观看视频| 久久久久国产精品熟女影院| 久久精品国产一区二区电影| 色综合久久无码五十路人妻|