我正在研究一种产生一些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
会很容易,但我们使用的其他构建系统不支持它。
答案 0 :(得分:3)
解决此问题的一种方法是在Project A中制作Post-Build事件。每次在构建项目A时,您都可以告诉它将A.dll复制(或替换)到某个目录。像这样:
copy /Y "$(TargetDir)$(ProjectName).dll" "C:\SomePath"