引用 dll 以及何时将 Copy Local 设置为 true

reference dll and when to have Copy Local set to true

我有几个独立的项目(彼此无关),它们都引用了我创建的一个 dll,我们称它为 MyDll。

我了解到,默认情况下,每个引用我的 dll 的项目都将 Copy Local 设置为 true。所以每个项目都有自己的 MyDll 副本。

但是如果我重建 MyDll 会发生什么情况,所有这些副本都会更新还是我需要重新添加引用?

将 MyDll 放在一个我的所有项目都引用该文件的地方是否有意义,或者这个想法是不明智的?

Copy Local 是使用您的 .dll 的项目中的参考 属性。 将参考程序集复制到输出文件夹的过程在您构建项目时完成。 如果您的引用路径设置为项目的输出文件夹,那么您需要重建项目。

您可以向您的通用 dll 的 Post-Build 事件 (Project->Properties->BuildEvents) 添加一些内容。例如,您可以调用一个批处理文件,您可以使用依赖于 dll

的项目的所有输出文件夹保持更新
if /I "$(ConfigurationName)" == "Release" 
         Call $(SolutionDir)\distribute_library.cmd $(TargetPath) 

(只有一行,为了便于阅读,在此处拆分)

其中 distribute_library.cmd 是包含将 $(TargetPath) 复制到不同目标的命令的批处理文件。

像这样:

D:
COPY %1 \MyProject1\bin\release
....other targets ....

不要忘记:将 Run the post-build event 组合设置为 On Successful build