• 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中的引用路径还是原来的。欺骗了我们的眼镜。


    作者:dingli
    出处:http://www.cnblogs.com/dingli/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    js18
    js17
    js16
    js15
    js14
    js13
    js12
    js11
    八月二十三的php
    八月二十二的php
  • 原文地址:https://www.cnblogs.com/dingli/p/2340596.html
Copyright © 2020-2023  润新知