我做了一个共享程序集,名称为CarLibray.dll,然后对它进行了强签名,并部署到了GAC。然后创建了一个控制台应用程序去调用这个dll,这时这个dll的版本还是1.0.0.0,并且控制台应用程序执行正确。然后我想更新一下这个程序集,并想把版本号改为2.0.0.0,具体的做法如下:
1,更新dll里面的程序。
2,把AssemblyInfo.cs文件里面的
[assembly: AssemblyVersion("1.0.0.0")] 改为 [assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")] 改为 [assembly: AssemblyFileVersion("2.0.0.0")]
然后进行编译,结果编译的时候报错,具体错误如下:    创建调试信息文件“C:\Documents and Settings\Administrator\桌面\CarLibrary\CarLibrary\obj\Debug\CarLibrary.PDB”时发生错误 --“C:\Documents and Settings\Administrator\桌面\CarLibrary\CarLibrary\obj\Debug\CarLibrary.pdb: 另一个程序正在使用此文件,进程无法访问。
”我找个半天,没找到是什么原因会报这个错,请各位高手指点,不胜感激!

解决方案 »

  1.   

    看提示,dll被占用没释放。先取消注册。然后生成。可能部署到了GAC后,需要手工的移除才能重新更新。
      

  2.   

    这个跟GAC无关。部署到了GAC的时候,根据版本号,程序集被拷贝到%SystemRoot%\assembly下的某个地方。GAC下新旧的版本能共存而没有问题。你的本地编译报错是其他问题,重启计算机一般能解决问题。
      

  3.   

    你的控制台程序还在用这个dll
      

  4.   

    问题解决了,只要把调用CarLibrary.dll文件的控制台应用程序的项目给关掉就可以正常编译了,— —!!
    但是具体原因目前还不清楚。