Error while installing Juila packages on windows

I am installing julia packages on my windows machine and i am getting errros that go like this β†’

*.dll is either not designed to run on windows or contains an error. Try installing again using original installation media or contact system admin or software vendor for support. Error status 0xc0e90002.

I got this error earlier as well when i was trying to install older version of julia by an exe installer.
Any idea on what to do??

A few questions:

  • what is the output of
julia> versioninfo()
  • which package(s) do you try to install
  • what is the output of
julia> using Pkg; Pkg.status()

And if you share the output you get, please enclose any messages in triple backslashes, like ```

julia> versioninfo()
Julia Version 1.12.6
Commit 15346901f0 (2026-04-09 19:20 UTC)
Build Info:
  Official https://julialang.org release
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 12 Γ— AMD Ryzen 5 5500U with Radeon Graphics
  WORD_SIZE: 64
  LLVM: libLLVM-18.1.7 (ORCJIT, znver2)
  GC: Built with stock GC
Threads: 1 default, 1 interactive, 1 GC (on 12 virtual cores)

(@v1.12) pkg> st
Status `C:\Users\adity\.julia\environments\v1.12\Project.toml`
  [336ed68f] CSV v0.10.16
  [a93c6f00] DataFrames v1.8.2
  [0c46a032] DifferentialEquations v8.0.3
  [7073ff75] IJulia v1.34.4
βŒ… [682c06a0] JSON v0.21.4
  [b964fa9f] LaTeXStrings v1.4.0
βŒƒ [2b0e0bc5] LanguageServer v4.1.0
  [23fbe1c1] Latexify v0.16.11
  [f8e5d5a0] PhoXonic v0.3.3
  [91a5bcdd] Plots v1.41.6
  [295af30f] Revise v3.16.3
  [276daf66] SpecialFunctions v2.8.3
  [10745b16] Statistics v1.11.1
  [2913bbd2] StatsBase v0.34.12
  [f3b207a7] StatsPlots v0.15.8
  [0c5d862f] Symbolics v7.36.0
  [3cd96dde] UnROOT v0.11.10
  [37e2e46d] LinearAlgebra v1.12.0

All of this was a fresh install on the machine. All packages were installed together via one command and were installed successfully. Errors started popping up after installation at the time of precompilation.

Here is the ss of one of the popups:

For debugging:

Can you remove the DifferentialEquations package and check if it then works:

using Pkg
Pkg.rm("DifferentialEquations")

This package is very large and likely contains many solvers you do not need.

But first, check if this helps. If yes, we can figure out how to install the solvers you need.

I removed DifferentialEquations and then precompiled. Everything worked fine. But then I tried installing it again after gc and now I am getting same *.dll errors for things from SciMLBase, LinearSolve, NonLinearSolveBase, DiffEqBase, OrdinaryDiffEq just like when I installed them for the first time.

Here is the error report:

julia> err
PkgPrecompileError: The following 1 direct dependency failed to precompile:

DifferentialEquations

Failed to precompile DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa] to "C:\\Users\\adity\\.julia\\compiled\\v1.12\\DifferentialEquations\\jl_6EF0.tmp".
ERROR: LoadError: Error opening package file C:\Users\adity\.julia\compiled\v1.12\DiffEqBaseSparseArraysExt\0NGOQ_oTCNx.dll: An Application Control policy has blocked this file.

Stacktrace:
  [1] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any}; register::Bool)
    @ Base .\loading.jl:1300
  [2] _include_from_serialized
    @ .\loading.jl:1276 [inlined]
  [3] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{String, Int64}, DEPOT_PATH::Vector{String})
    @ Base .\loading.jl:2117
  [4] __require_prelocked(pkg::Base.PkgId, env::Nothing)
    @ Base .\loading.jl:2629
  [5] _require_prelocked(uuidkey::Base.PkgId, env::Nothing)
    @ Base .\loading.jl:2495
  [6] _require_prelocked(uuidkey::Base.PkgId)
    @ Base .\loading.jl:2489
  [7] run_extension_callbacks(extid::Base.ExtensionId)
    @ Base .\loading.jl:1609
  [8] run_extension_callbacks(pkgid::Base.PkgId)
    @ Base .\loading.jl:1646
  [9] run_package_callbacks(modkey::Base.PkgId)
    @ Base .\loading.jl:1462
 [10] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{String, Int64}, DEPOT_PATH::Vector{String})
    @ Base .\loading.jl:2136
 [11] _require_search_from_serialized
    @ .\loading.jl:2011 [inlined]
 [12] __require_prelocked(pkg::Base.PkgId, env::String)
    @ Base .\loading.jl:2629
 [13] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base .\loading.jl:2495
 [14] macro expansion
    @ .\loading.jl:2423 [inlined]
 [15] macro expansion
    @ .\lock.jl:376 [inlined]
 [16] __require(into::Module, mod::Symbol)
    @ Base .\loading.jl:2388
 [17] require(into::Module, mod::Symbol)
    @ Base .\loading.jl:2364
 [18] top-level scope
    @ C:\Users\adity\.julia\packages\OrdinaryDiffEqRosenbrock\V69LJ\src\OrdinaryDiffEqRosenbrock.jl:28
 [19] include(mod::Module, _path::String)
    @ Base .\Base.jl:306
 [20] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
    @ Base .\loading.jl:3028
 [21] top-level scope
    @ stdin:5
 [22] eval(m::Module, e::Any)
    @ Core .\boot.jl:489
 [23] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
    @ Base .\loading.jl:2874
 [24] include_string
    @ .\loading.jl:2884 [inlined]
 [25] exec_options(opts::Base.JLOptions)
    @ Base .\client.jl:315
 [26] _start()
    @ Base .\client.jl:550
in expression starting at C:\Users\adity\.julia\packages\OrdinaryDiffEqRosenbrock\V69LJ\src\OrdinaryDiffEqRosenbrock.jl:1
in expression starting at stdin:5
ERROR: LoadError: Failed to precompile OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce] to "C:\\Users\\adity\\.julia\\compiled\\v1.12\\OrdinaryDiffEqRosenbrock\\jl_75D9.tmp".
Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:44
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)
    @ Base .\loading.jl:3315
  [3] (::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}})()
    @ Base .\loading.jl:2683
  [4] mkpidlock(f::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
    @ FileWatching.Pidfile C:\Users\adity\.julia\juliaup\julia-1.12.6+0.x64.w64.mingw32\share\julia\stdlib\v1.12\FileWatching\src\pidfile.jl:96
  [5] #mkpidlock#7
    @ C:\Users\adity\.julia\juliaup\julia-1.12.6+0.x64.w64.mingw32\share\julia\stdlib\v1.12\FileWatching\src\pidfile.jl:91 [inlined]
  [6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
    @ FileWatching.Pidfile C:\Users\adity\.julia\juliaup\julia-1.12.6+0.x64.w64.mingw32\share\julia\stdlib\v1.12\FileWatching\src\pidfile.jl:117
  [7] #invokelatest_gr#232
    @ .\reflection.jl:1297 [inlined]
  [8] invokelatest_gr
    @ .\reflection.jl:1289 [inlined]
  [9] maybe_cachefile_lock(f::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
    @ Base .\loading.jl:3886
 [10] maybe_cachefile_lock
    @ .\loading.jl:3883 [inlined]
 [11] __require_prelocked(pkg::Base.PkgId, env::String)
    @ Base .\loading.jl:2669
 [12] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base .\loading.jl:2495
 [13] macro expansion
    @ .\loading.jl:2423 [inlined]
 [14] macro expansion
    @ .\lock.jl:376 [inlined]
 [15] __require(into::Module, mod::Symbol)
    @ Base .\loading.jl:2388
 [16] require(into::Module, mod::Symbol)
    @ Base .\loading.jl:2364
 [17] top-level scope
    @ C:\Users\adity\.julia\packages\OrdinaryDiffEq\S8I8e\src\OrdinaryDiffEq.jl:14
 [18] include(mod::Module, _path::String)
    @ Base .\Base.jl:306
 [19] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
    @ Base .\loading.jl:3028
 [20] top-level scope
    @ stdin:5
 [21] eval(m::Module, e::Any)
    @ Core .\boot.jl:489
 [22] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
    @ Base .\loading.jl:2874
 [23] include_string
    @ .\loading.jl:2884 [inlined]
 [24] exec_options(opts::Base.JLOptions)
    @ Base .\client.jl:315
 [25] _start()
    @ Base .\client.jl:550
in expression starting at C:\Users\adity\.julia\packages\OrdinaryDiffEq\S8I8e\src\OrdinaryDiffEq.jl:1
in expression starting at stdin:5
ERROR: LoadError: Failed to precompile OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed] to "C:\\Users\\adity\\.julia\\compiled\\v1.12\\OrdinaryDiffEq\\jl_70F7.tmp".
Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:44
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool; flags::Cmd, cacheflags::Base.CacheFlags, reasons::Dict{String, Int64}, loadable_exts::Nothing)
    @ Base .\loading.jl:3315
  [3] (::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}})()
    @ Base .\loading.jl:2683
  [4] mkpidlock(f::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
    @ FileWatching.Pidfile C:\Users\adity\.julia\juliaup\julia-1.12.6+0.x64.w64.mingw32\share\julia\stdlib\v1.12\FileWatching\src\pidfile.jl:96
  [5] #mkpidlock#7
    @ C:\Users\adity\.julia\juliaup\julia-1.12.6+0.x64.w64.mingw32\share\julia\stdlib\v1.12\FileWatching\src\pidfile.jl:91 [inlined]
  [6] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
    @ FileWatching.Pidfile C:\Users\adity\.julia\juliaup\julia-1.12.6+0.x64.w64.mingw32\share\julia\stdlib\v1.12\FileWatching\src\pidfile.jl:117
  [7] #invokelatest_gr#232
    @ .\reflection.jl:1297 [inlined]
  [8] invokelatest_gr
    @ .\reflection.jl:1289 [inlined]
  [9] maybe_cachefile_lock(f::Base.var"#__require_prelocked##0#__require_prelocked##1"{Base.PkgId, String, Dict{String, Int64}}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
    @ Base .\loading.jl:3886
 [10] maybe_cachefile_lock
    @ .\loading.jl:3883 [inlined]
 [11] __require_prelocked(pkg::Base.PkgId, env::String)
    @ Base .\loading.jl:2669
 [12] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base .\loading.jl:2495
 [13] macro expansion
    @ .\loading.jl:2423 [inlined]
 [14] macro expansion
    @ .\lock.jl:376 [inlined]
 [15] __require(into::Module, mod::Symbol)
    @ Base .\loading.jl:2388
 [16] require(into::Module, mod::Symbol)
    @ Base .\loading.jl:2364
 [17] top-level scope
    @ C:\Users\adity\.julia\packages\DifferentialEquations\vziP9\src\DifferentialEquations.jl:5
 [18] include(mod::Module, _path::String)
    @ Base .\Base.jl:306
 [19] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
    @ Base .\loading.jl:3028
 [20] top-level scope
    @ stdin:5
 [21] eval(m::Module, e::Any)
    @ Core .\boot.jl:489
 [22] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
    @ Base .\loading.jl:2874
 [23] include_string
    @ .\loading.jl:2884 [inlined]
 [24] exec_options(opts::Base.JLOptions)
    @ Base .\client.jl:315
 [25] _start()
    @ Base .\client.jl:550
in expression starting at C:\Users\adity\.julia\packages\DifferentialEquations\vziP9\src\DifferentialEquations.jl:1
in expression starting at stdin:

This is what I got after re-installing:

Precompiling packages  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70/70
  βœ— PreallocationTools β†’ PreallocationToolsEnzymeCoreExt
  βœ— SciMLBase
  βœ— SciMLBase β†’ SciMLBaseDifferentiationInterfaceExt
  βœ— SciMLBase β†’ SciMLBaseForwardDiffExt
  βœ— SciMLBase β†’ SciMLBaseDistributionsExt
  βœ— SciMLBase β†’ SciMLBaseStaticArraysExt
  βœ— SciMLBase β†’ SciMLBaseChainRulesCoreExt
  βœ— SciMLBase β†’ SciMLBaseMeasurementsExt
  βœ— LinearSolve
  βœ— SciMLJacobianOperators
  βœ— LineSearch
  βœ— NonlinearSolveBase
  βœ— LinearSolve β†’ LinearSolveChainRulesCoreExt
  βœ— LinearSolve β†’ LinearSolveIterativeSolversExt
  βœ— LinearSolve β†’ LinearSolveEnzymeExt
  βœ— PreallocationTools β†’ PreallocationToolsEnzymeCoreExt
  βœ— SciMLBase
  βœ— SciMLBase β†’ SciMLBaseDifferentiationInterfaceExt
  βœ— SciMLBase β†’ SciMLBaseForwardDiffExt
  βœ— SciMLBase β†’ SciMLBaseDistributionsExt
  βœ— SciMLBase β†’ SciMLBaseStaticArraysExt
  βœ— SciMLBase β†’ SciMLBaseChainRulesCoreExt
  βœ— SciMLBase β†’ SciMLBaseMeasurementsExt
  βœ— LinearSolve
  βœ— SciMLJacobianOperators
  βœ— LineSearch
  βœ— NonlinearSolveBase
  βœ— LinearSolve β†’ LinearSolveChainRulesCoreExt
  βœ— LinearSolve β†’ LinearSolveIterativeSolversExt
  βœ— LinearSolve β†’ LinearSolveEnzymeExt
  βœ— LinearSolve β†’ LinearSolveArpackExt
  βœ— LinearSolve β†’ LinearSolveArnoldiMethodExt
  βœ— LinearSolve β†’ LinearSolveForwardDiffExt
  βœ— LinearSolve β†’ LinearSolveKrylovKitExt
  βœ— NonlinearSolveBase β†’ NonlinearSolveBaseSparseMatrixColoringsExt
  βœ— NonlinearSolveBase β†’ NonlinearSolveBaseForwardDiffExt
  βœ— NonlinearSolveBase β†’ NonlinearSolveBaseChainRulesCoreExt
  βœ— NonlinearSolveBase β†’ NonlinearSolveBaseSparseArraysExt
  βœ— NonlinearSolveBase β†’ NonlinearSolveBaseLinearSolveExt
  βœ— BracketingNonlinearSolve
  βœ— NonlinearSolveBase β†’ NonlinearSolveBaseLineSearchExt
  βœ— BracketingNonlinearSolve β†’ BracketingNonlinearSolveForwardDiffExt
  βœ— DiffEqBase
  βœ— NonlinearSolveSpectralMethods
  βœ— BracketingNonlinearSolve β†’ BracketingNonlinearSolveChainRulesCoreExt
  βœ— SimpleNonlinearSolve
  βœ— NonlinearSolveSpectralMethods β†’ NonlinearSolveSpectralMethodsForwardDiffExt
  βœ— DiffEqBase β†’ DiffEqBaseChainRulesCoreExt
  βœ— DiffEqBase β†’ DiffEqBaseForwardDiffExt
  βœ— DiffEqBase β†’ DiffEqBaseMeasurementsExt
  βœ— NonlinearSolveFirstOrder
  βœ— SimpleNonlinearSolve β†’ SimpleNonlinearSolveChainRulesCoreExt
  βœ— OrdinaryDiffEqDifferentiation
  βœ— NonlinearSolve
  βœ— OrdinaryDiffEqDifferentiation β†’ OrdinaryDiffEqDifferentiationSparseArraysExt
  βœ— OrdinaryDiffEqRosenbrock
  βœ— OrdinaryDiffEqNonlinearSolve
  βœ— OrdinaryDiffEqSDIRK
  βœ— OrdinaryDiffEqBDF
  βœ— OrdinaryDiffEqDefault
  βœ— OrdinaryDiffEq
  βœ— DifferentialEquations
Precompiling packages finished.
  23 dependencies successfully precompiled in 437 seconds. 469 already precompiled.
  47 dependencies errored.

Don’t install it again. Which solvers do you need?

Try, for example, just installing OrdinaryDiffEq.jl.

@ChrisRackauckas Can you help to debug this issue?

As of now I need solvers for Ordinary and Partial Differential equations. I tried installing only OrdinaryDiffEq but I am still getting error in the following:

βœ— NonlinearSolveBase β†’ NonlinearSolveBaseLineSearchExt
  βœ— OrdinaryDiffEqDifferentiation
  βœ— NonlinearSolveSpectralMethods
  βœ— NonlinearSolveFirstOrder
  βœ— SimpleNonlinearSolve
  βœ— NonlinearSolveSpectralMethods β†’ NonlinearSolveSpectralMethodsForwardDiffExt
  βœ— SimpleNonlinearSolve β†’ SimpleNonlinearSolveChainRulesCoreExt
  βœ— OrdinaryDiffEqDifferentiation β†’ OrdinaryDiffEqDifferentiationSparseArraysExt
  βœ— NonlinearSolve
  βœ— OrdinaryDiffEqRosenbrock
  βœ— OrdinaryDiffEqNonlinearSolve
  βœ— OrdinaryDiffEqSDIRK
  βœ— OrdinaryDiffEqBDF
  βœ— OrdinaryDiffEqDefault
  βœ— OrdinaryDiffEq
Precompiling packages finished.
  14 dependencies successfully precompiled in 149 seconds. 509 already precompiled.
  15 dependencies errored.
  For a report of the errors see `julia> err`. To retry use `pkg> precompile`

It says: For an error report, type: julia> err. Did you do that?

Of interest is the first error with the smallest number of packages in the project. Did you try:

  • creating a project with only one package, OrdinaryDiffEq.jl ?
  • if that fails, delete the compilation cache:
cd ~/.julia/compiled
rm -rf v1.12

and try installing OrdinaryDiffEq.jl again.

The commands above are BASH commands, but if you have git for windows installed, you also have a BASH terminal available.

That’s your precompiled package images. That’s not something that’s going to be SciML-specific, I think all Julia packages would have an issue here. Is this not an overzealous antivirus?

Looks similar to pkgimages DLLs blocked by Windows Defender Application Control (WDAC) on enterprise machines β€” no graceful fallback Β· Issue #61252 Β· JuliaLang/julia Β· GitHub to me.

So probably some Windows security tool like Smart App Control (SAC) or Windows Defender Application Control (WDAC) blocking it.

Do you have something like that, and if yes can you whitelist .julia\compiled?

Yes the windows defender is showing errors alongside this dll popup, I just wanted to know if there is a way to fix this without whitelisting the entire .julia directory because I originally wanted to install a different version and I was getting the same error with the exe installer given on the website.

Well, the suggestion was to whitelist .julia\compiled, which is much smaller than .julia and contains the compiled packages.

And I don’t think that this directory depends on the Julia version or installation method.

I was also experiencing the error mentioned in the original post (with Julia 1.12.7, clean install), not when installing Julia but when adding packages:

Some filename.dll is either not designed to run on windows or contains an error)

in addition to errors like this one:

Part of this app has been blocked. Some features of Julia Programming Language may not work because we can’t confirm who published Some filename.dll that the app tried to load.

(some filename.dll could for example be U1ZAW_XJED.dll, located in `C:\Users\MyUserName.julia\compiled...).

This is only happening for me with Windows 11, a similarly configured machine (same admin rights, etc.) with Windows 10 seems to work fine.

I followed @ufechner7’s advice, but I was getting a bit tired of Windows 11 shenanigans, so I excluded the whole C:\Users\MyUserName\.julia\ from the anti-virus.

I did that in Settings > Privacy and Security > Windows security > Virus & threat protection > Manage settings > Exclusions > Add Exclusion

I also had to disable Windows 11 (not so) Smart App Control, in Settings > Privacy and Security > Windows security > App & Browser control > Smart App Control > Off

With those 2 changes (which require admin rights on the machine), I was able to add packages to Julia.

Getting rid of the AV altogether is the simplest solution. You’ll have always Windows Defender that as good/bad as others and less intrusive.

Its not an AV, its an error/warning shown bi windows defender that is why it is a bit confusing as I have never experienced this while installing Julia or any other language earlier.

Also, in the meantime, it was noted that windows defender is flagging VLC Media Player for some reason, so I guess all of this is due to some bug in the windows defender.