2

我正在研究产生一些 DLL 的解决方案。假设项目 A 生成 A.dll。项目 B 使用 A.dll 来执行一些功能。

运行项目 B 时,它会检查输出目录中是否存在 A.dll,如果不存在,它会从 HintPath 复制 A.dll(据我所知)。但如果 A.dll 已经在输出目录中,它不会复制过来。

因此,如果项目 A 发生更改并生成了新的 A.dll,则项目 B 将不会获得新的 A.dll,直到输出目录中的副本被删除。因此,如果您运行项目 B,它将使用旧代码。

有没有办法强制 DLL 总是被复制?也许在构建项目 B 之前删除输出目录中的副本?

它很容易使用ProjectReference,但我们使用的另一个构建系统不支持它。

4

1 回答 1

3

解决此问题的一种方法是在项目 A 中进行构建后事件。您可以告诉它在每次构建项目 A 时将 A.dll 复制(或替换)到某个目录。像这样的东西:

copy /Y "$(TargetDir)$(ProjectName).dll" "C:\SomePath"
于 2013-05-17T20:03:37.767 回答