Visual Studio 编译时,如何管理生成的DLL


在用Visual Studio 开发时,少不了会引用其他类库的源码。一般引用类库有两种方法。

1、直接引用项目。

2、引用项目生成路径的dll。

现在如果有两个项目 ProjectA和ProjectB。ProjectA引用ProjectB。

 

问题1:

在第二种方法中,那么编译ProjectA的时候就会把ProjectB的dll考到ProjectA的bin(默认)文件夹中。

现在有个需求是,我想把ProjectB项目考过来的dll放到ProjectA项目Bin文件夹下的某一个文件夹dll,那么我们只要在ProjectA项目属性中=》生成事件=》后期生成事件命令行中添加命令: move /y $(TargetDir)\*.dll $(TargetDir)\dll

TaigetDir项目路径是bin/debug下的。可以点编辑生成后期生成事件来生成。

这样我们就可以把我们编译过后的dll考到我们想要的文件夹下了,不过这种编译的缺点是 要重新编译ProjectA这个项目才行。

 

问题2:

当我们打开两个项目时(ProjectA和ProjectB)都在Debug模式下,这时候,ProjectA已经引用了ProjectB,我们编译ProjectA的时候,就会提示dll被其他进程引用(ProjectB项目开着呢)。

这里网上有人也说了,通过欺骗而绕过Visual Studio的编译。做法如下:

在ProjectB项目中dll的生成路径下,新建一个文件夹 名叫 $(Configuration) 

然后在ProjectB的后期生成事件命令行中添加命令:xcopy /y $(ProjectDir)bin\$(Configuration) "$(ProjectDir)bin\%2$%2(Configuration)\"

把从生成在Bin中的dll拷贝到$(Configuration)文件夹下。

于是我们就可以把原来ProjectA引用ProjectB生成的dll改为引用生成在$(Configuration)文件夹下的dll

这时候ProjectA中的引用路径还是原来的。欺骗了我们的眼镜。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM