gpt4 book ai didi

visual-studio-2010 - 将所有输出 dll 放在 Visual Studio 的公共(public)目录中

转载 作者:行者123 更新时间:2023-12-04 22:52:03 26 4
gpt4 key购买 nike

我有几个不同的解决方案,其中一些项目可能依赖于其他解决方案中项目的输出。为了管理这一点,我一直在构建后将每个项目中的/bin/文件夹中的 dll 文件复制到共享库位置,然后将它们从那里复制/引用到依赖项目。

但是,随着库解决方案变得越来越大,这往往变得无法维护。我花了太多时间在 Windows 资源管理器中遍历解决方案目录以查找/bin/文件夹,并试图从我需要的每个 dll 文件中找出哪个或哪些 dll 文件。

有没有办法给 Visual Studio 一个提示,我希望解决方案中的所有项目都具有相同的输出目录?例如,解决方案文件夹下的/bin/文件夹,所有项目都将其输出放置在其中。

如果可能的话,我想在没有复制文件的硬编码构建后事件的情况下实现这一点,因为如果项目输出更改文件名或添加另一个文件,这将失败。如果您愿意,我宁愿更改实际输出目录的位置 - $(OutDir) 的位置。

最佳答案

我知道你说你不想使用后期构建事件,但是你为什么不让我感兴趣的原因。听起来您可能在构建后事件中对 .dll 的名称进行了硬编码。这很容易避免。
xcopy "$(TargetDir)*" "c:\common\" /Y*只会导致您的 bin/Debug/文件夹中的所有内容都被复制到您的公共(public)文件夹中。如果需要,您也可以只复制 dll。或者,如果您使用 $(TargetPath) ,您将只复制作为项目结果的 1 个 dll,而不是任何其他相关的依赖项。

更新

我们这样做的方式是将每个项目的整个 bin 文件夹复制到一个子文件夹中。假设您有 2 个项目,WebUtilHtmlParser ,其中 WebUtil 依赖于 HtmlParser。对于这两个项目,请使用 xcopy "$(TargetDir)*" "c:\common\$(ProjectName)" /Y .这将创建 c:\common\WebUtil\和 c:\common\HtmlParser。在 WebUtil 中,添加对 c:\common\HtmlParser\HtmlParser.dll 的引用。现在在 c:\common 中将有 2 个 HtmlParser.dll 副本。

c:\common\HtmlParser\HtmlParser.dll//最近的构建。
c:\common\WebUtil\HtmlParser//构建 WebUtil 时的最新构建是什么

这有各种优点。如果您更改 HtmlParser 的 API,WebUtil 将继续工作,因为在您尝试重新构建 WebUtil 之前,它将具有较旧的 HtmlParser.dll(此时您会因为更改的 API 而出现构建错误)。

现在,如果第三个项目依赖于 WebUtil,并且您正在使用 WebUtil 的某些部分在 HtmlParser 中公开类,那么您需要从新项目中添加对这两个项目的引用。添加对 HtmlParser.dll 的引用时,请使用 c:\common\WebUtil 中的引用。您这样做是因为您只是将它作为 WebUtil 的必要要求包括在内。现在,您将始终拥有与您当前版本的 WebUtil.dll 相匹配的 HtmlParser.dll 版本。

我希望这是有道理的。管理这绝对是一件棘手的事情。等到你必须开始使用 svn:externals =P 拉下所有依赖项

关于visual-studio-2010 - 将所有输出 dll 放在 Visual Studio 的公共(public)目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3297427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com