• <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>

            牽著老婆滿街逛

            嚴以律己,寬以待人. 三思而后行.
            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 時遇到“LNK1201: 寫入程序數據庫時出錯”的解決方案

            轉載自:http://xoyozo.me/blog/lnk1201-error-at-every-build.html

            Windows 7 使用 VS.NET 2003 開發項目時經常會遇到類似如下錯誤:

            TestServer fatal error LNK1201: 寫入程序數據庫“d:\Projects\GameServer\data\TestServer.pdb”時出錯;請檢查是否是磁盤空間不足、路徑無效或權限不夠

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

            一、首先下載兩個文件:Handle 和 freepdb

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

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

            四、完成!運行一下看看吧。如果仍然有問題,先雙擊運行這兩個文件試試,因為我是先運行后再配置項目屬性的,所以不確定不運行會不會出錯。

            如果上述文件無法下載,請聯系 xoyozo 索取!Have fun!


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

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

            評論

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

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

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

            哦?這樣的么?
            我之前用Windows 7 32位的時候,有的項目會有問題,有的不會,很是奇怪,我估計可能是權限的問題還是怎樣的。

            但是,我前幾天換到了64位的操作系統以后,就有問題了,奇了個怪。說實話,讓我每個項目都這樣做,我也很煩。
            但是,我現在每調試一次,就要關閉一次工程,這很煩人的。  回復  更多評論   

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

            后來發現還是不行,沒法確定工程生成的pdb文件名以及位置。除非所有的工程都是按照默認位置和名字來存放pdb文件。
            于是,只有下了個GUI版本的procexp,手動強制關閉devenv.exe相關工程對應的pdb文件句柄。  回復  更多評論   

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

            @楊粼波
            要么自己為每個工程寫一個prelink事件,通過命令行強制關閉被打開的pdb文件句柄,
            要么在調試后鏈接前用procexp強制關閉下pdb的文件句柄。
              回復  更多評論   

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

            都挺煩人的。  回復  更多評論   

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

            freepdb.cmd的代碼里面有問題。我修改了一下。現在可以了。等我傳上來,這問題困擾我好久了  回復  更多評論   

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

            rem 在預生成事件里輸入 比如 c:\lnk1201\freepdb.cmd ServerD
            rem ServerD為你的被鎖住的PDB名字,一般來說是exe名字而不是工程名。。。請注意
            rem 不過你要是沒修改輸出exe名字。直接就是工程名也是對的
            @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 執行關閉命令
            rem 此時%%b為pid
            rem 此時%%f為fileid
            handle -c %%f -y -p %%b %1 > NULL
            )
            )
            )
            )

            exit /b 0
              回復  更多評論   

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

            今天閑著蛋疼。。。總算吧這個問題解決了。。。。。。。。。。。。。
            網上所有的freepdb.cmd都有問題  回復  更多評論   

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

            ==!為啥蛋疼呢?  回復  更多評論   

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

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

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

            兔子的版本好使,不過啟動的時候注意要 管理員身份打開 vs  回復  更多評論   

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

            不想以管理員模式運行,兔子的版本無效。  回復  更多評論   

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

            我這里加載了很多dll,dll會有pdb文件,好像不會卸載。
            擦,我現在是相當相當的痛苦!
            非常的想把VS升級上去了。  回復  更多評論   

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

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

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

            好的,管用  回復  更多評論   

            91精品国产91久久久久久| 久久久久一区二区三区| 精品久久久久久中文字幕大豆网| 一本色道久久88综合日韩精品 | 色综合久久久久无码专区| 久久午夜伦鲁片免费无码| 久久久久久狠狠丁香| 亚洲精品成人网久久久久久| 久久人人爽人人爽人人片AV不 | 亚洲国产日韩综合久久精品| 亚洲色大成网站WWW久久九九| 久久精品人人做人人爽电影| 开心久久婷婷综合中文字幕| 欧洲精品久久久av无码电影| 久久精品国产清自在天天线| 国产精品9999久久久久| 久久久久久亚洲精品不卡| 精品久久久久久久久午夜福利| 日韩久久无码免费毛片软件| 国产午夜久久影院| 久久国产精品无码HDAV| 青春久久| 久久国产影院| 国产精品一区二区久久精品无码| 久久亚洲精品成人AV| 久久精品国产久精国产果冻传媒| 精品国产一区二区三区久久蜜臀| 99久久综合狠狠综合久久止| 久久青青草原精品国产| 狠狠综合久久综合88亚洲| 久久毛片一区二区| 老司机午夜网站国内精品久久久久久久久| 久久精品aⅴ无码中文字字幕重口| 久久久久久精品免费看SSS| 亚洲午夜精品久久久久久app| 久久播电影网| 久久精品成人免费观看97| 久久99国产一区二区三区| 国产巨作麻豆欧美亚洲综合久久| AA级片免费看视频久久| 国内精品久久久久久久涩爱|