Ipopt in different Julia versions

I get this error with Ipopt (version v0.6.1):

ERROR: LoadError: could not load library "C:\Users\plowman\.julia\packages\Ipopt\ruIXY\deps\usr\bin\libipopt-1.dll"
The specified module could not be found.

I’m using Julia v1.3.1 and v1.4.0.

I can fix the error by rebuilding with Pkg.build("Ipopt") in one Julia version, but then it breaks in the other Julia version.

Is this expected? Is there a way to have Ipopt work in both Julia versions (without rebuilding)?

I couldn’t work out what is happening during the the rebuild process, but I did note that the rebuild only works if Julia is started with admin privileges (I’m using Windows 10), otherwise receive the following error. So maybe the issue is something to do with symlinks?

   Building Ipopt ─────→ `C:\Users\plowman\.julia\packages\Ipopt\ruIXY\deps\build.log`
┌ Error: Error building `Ipopt`:
│ ┌ Warning: On Windows, creating file symlinks requires Administrator privileges
│ └ @ Base.Filesystem file.jl:952
│ ERROR: LoadError: IOError: unlink: permission denied (EACCES)
│ Stacktrace:
│  [1] uv_error at .\libuv.jl:97 [inlined]
│  [2] unlink(::String) at .\file.jl:885
│  [3] rm(::String; force::Bool, recursive::Bool) at .\file.jl:268
│  [4] uninstall(::String; verbose::Bool) at C:\Users\plowman\.julia\packages\BinaryProvider\kcGxO\src\Prefix.jl:390
│  [5] install(::String, ::String; prefix::Prefix, tarball_path::String, force::Bool, ignore_platform::Bool, verbose::Bool) at C:\Users\plowman\.julia\packages\BinaryProvider\kcGxO\src\Prefix.jl:324
│  [6] top-level scope at C:\Users\plowman\.julia\packages\Ipopt\ruIXY\deps\build.jl:84
│  [7] include(::String) at .\client.jl:439
│  [8] top-level scope at none:5
│ in expression starting at C:\Users\plowman\.julia\packages\Ipopt\ruIXY\deps\build.jl:67
│ caused by [exception 1]
│ IOError: symlink: operation not permitted (EPERM)
│ Stacktrace:
│  [1] uv_error at .\libuv.jl:97 [inlined]
│  [2] symlink(::String, ::String) at .\file.jl:955
│  [3] probe_symlink_creation(::String) at C:\Users\plowman\.julia\packages\BinaryProvider\kcGxO\src\PlatformEngines.jl:121
│  [4] probe_platform_engines!(; verbose::Bool) at C:\Users\plowman\.julia\packages\BinaryProvider\kcGxO\src\PlatformEngines.jl:175
│  [5] probe_platform_engines! at C:\Users\plowman\.julia\packages\BinaryProvider\kcGxO\src\PlatformEngines.jl:169 [inlined]
│  [6] __init__() at C:\Users\plowman\.julia\packages\BinaryProvider\kcGxO\src\BinaryProvider.jl:28
│  [7] _include_from_serialized(::String, ::Array{Any,1}) at .\loading.jl:697
│  [8] _require_search_from_serialized(::Base.PkgId, ::String) at .\loading.jl:781
│  [9] _require(::Base.PkgId) at .\loading.jl:1006
│  [10] require(::Base.PkgId) at .\loading.jl:927
│  [11] require(::Module, ::Symbol) at .\loading.jl:922
│  [12] include(::String) at .\client.jl:439
│  [13] top-level scope at none:5
└ @ Pkg.Operations D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.4\Pkg\src\Operations.jl:892