【问题标题】:A way to delete and recopy a .dll for each re-compile?为每次重新编译删除和重新复制 .dll 的方法?
【发布时间】:2017-03-25 05:34:36
【问题描述】:

基本上,我有两个项目,一个编译为 dll,另一个使用该 dll。现在我有一个预构建脚本,它将 dll 复制到依赖项目的二进制文件夹中以供使用:

copy "$(SolutionDir)\DLLProj\Binaries\$(PlatformName)_$(Configuration)\DLLProj.dll" "$(SolutionDir)\DependentProj\Binaries\$(PlatformName)_$(Configuration)\"

这个脚本似乎在第一次构建时复制了 dll,但在随后的构建和运行中它没有被更新。起初我认为这是因为我的 dll 没有被重建,但我不认为是这种情况。我唯一能想到的是,也许我的复制命令仅在我的依赖项目文件夹中没有找到 dll 文件时才运行?所以旧的 dll 就在那里,除非我清理或重建我的项目,然后将一个新的 dll 复制到该位置。如果是这种情况,是否有命令确保在退出时从我的依赖项目中删除或删除 dll?或任何其他方式来确保在后续构建中正确的 dll?

【问题讨论】:

    标签: c++ visual-studio dll visual-studio-2015 command-line-arguments


    【解决方案1】:

    通常的解决方案是xcopy /d。此标志告诉 xcopy 仅在目标已过时或丢失时才复制您的 DLL。

    【讨论】:

      【解决方案2】:

      编辑:

      尝试修改您的复制命令(确保使用echo y|copy 替换现有文件):

      echo y|copy "$(SolutionDir)\DLLProj\Binaries\$(PlatformName)_$(Configuration)\DLLProj.dll" "$(SolutionDir)\DependentProj\Binaries\$(PlatformName)_$(Configuration)\"
      

      并且确保copy command在您构建DllProject之后运行。

      另一种解决方案:

      我更喜欢使用.bat

      1.delete旧版.dll文件:

      echo y|del "$(SolutionDir)\DependentProj\Binaries\$(PlatformName)_$(Configuration)\DLLProj.dll"
      

      2.copy更新版本

      copy "$(SolutionDir)\DLLProj\Binaries\$(PlatformName)_$(Configuration)\DLLProj.dll" "$(SolutionDir)\DependentProj\Binaries\$(PlatformName)_$(Configuration)\"
      

      因此,您的 .bat 文件应如下所示:

      echo y|del "$(SolutionDir)\DependentProj\Binaries\$(PlatformName)_$(Configuration)\DLLProj.dll"
      
      copy "$(SolutionDir)\DLLProj\Binaries\$(PlatformName)_$(Configuration)\DLLProj.dll" "$(SolutionDir)\DependentProj\Binaries\$(PlatformName)_$(Configuration)\"
      

      【讨论】:

        猜你喜欢
        • 2020-08-28
        • 2012-01-20
        • 1970-01-01
        • 2013-08-17
        • 2021-02-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多