If DOKAN_DLL_OUTPUT_PATH is set but the file it points to doesn't exists and the crate is otherwise considered fresh, the dll is not rebuilt.
One case where this is a problem is when cache is enabled on github CI: when there is a cache hit on the dokan-sys crate it's not rebuilt which means the dll is not placed to DOKAN_DLL_OUTPUT_PATH which causes the subsequent steps to fail, if they require the dll to be there.
The fix should be simple: add cargo::rerun-if-changed directive for the file at DOKAN_DLL_OUTPUT_PATH if the var is defined.
If
DOKAN_DLL_OUTPUT_PATHis set but the file it points to doesn't exists and the crate is otherwise considered fresh, the dll is not rebuilt.One case where this is a problem is when cache is enabled on github CI: when there is a cache hit on the
dokan-syscrate it's not rebuilt which means the dll is not placed toDOKAN_DLL_OUTPUT_PATHwhich causes the subsequent steps to fail, if they require the dll to be there.The fix should be simple: add cargo::rerun-if-changed directive for the file at
DOKAN_DLL_OUTPUT_PATHif the var is defined.