# New simplified installation procedure on Windows

**URL:** <https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224>\
**Category:** Announcements\
**Created:** [June 29, 2020, 4:01pm UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224 "2020-06-29T16:01:25Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [June 29, 2020, 4:01pm UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/1 "2020-06-29T16:01:25Z")

</div>

Today, we are proud to announce that we have deployed a new and easier procedure for finding and installing Windows binaries and we plan to make it even easier going forward.

# Background

None of the current maintainers of Graphviz are experienced Windows users and the process of finding and installing Windows binaries has been very complicated for a long time 😰. In this article we provide detailed instructions for how to download and install Graphviz for Windows 10 for both advanced users and users with less experience. The instructions will probably be incorporated into the official documentation in some form or another at a later stage.

# Feedback. Please! 🙏

Please help us improve the new installation procedure and the instructions in this article by providing feedback as comments below. Most important is of course if something is wrong or missing, but even if it just works without any problems for you, this is good information for us and for other users. Please state which operating system and which web browser you use and also which versions they have if you know how to find out.

We are particularly interested to know if this is working well also for Windows versions other than Windows 10 and if and how the procedure differs.

If you find a bug or want to suggest an enhancement to the software, please report it as a [GitLab issue](https://gitlab.com/graphviz/graphviz/-/issues/new).

# Installation instructions 😁

Below are three sections that are intended for users with different levels of experience. The first two are the same procedure and will give you the exact same result, but differs in how much guidance they provide. Chose the first if you have no prior experience with installing software on Windows and the second if you feel comfortable with this and want a quick and easy installation procedure. Chose the third if you are an advanced user and want to be able select between all the options.

## Installation instructions with detailed guidance (recommended for users without installation experience) 🤔

These instructions provides screenshots for every step in the installation process, but does not show all available options. If you don’t need this guidance, you can jump to [the abbreviated section](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224#abbreviated-installation-instructions-recommended-for-users-with-installation-experience) for quicker installation. If you need more options, jump to [the advanced section](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224#installation-instructions-for-custom-installations-recommended-for-advanced-users).

The screenshots are from a Windows 10 installation. If you are using another Windows version they may look slightly different. If you are having problems or find significant differences, please ask questions and provide feedback as comments below.

1. Select if you want to install the 32-bit or 64-bit version of Graphviz.

2. Visit the [download location](https://gitlab.com/graphviz/graphviz/-/releases)

3. Download the [32-bit](https://gitlab.com/graphviz/graphviz/-/package_files/6164165/download) or [64-bit](https://gitlab.com/graphviz/graphviz/-/package_files/6164164/download) exe file.

4. If you get a question whether to run or save the file, choose **Run** , otherwise **save** it and then run it by clicking or double-clicking on it.

5. Click **More info** if you see this dialog:  

6. Click **Run anyway** if you see this dialog:  

7. Click **Yes** if you see this dialog:  

8. Click **Next \>** in this dialog:  

9. Click **I agree** in this dialog:  

10. Select **`Add Graphviz to the system PATH for current user`** in this dialog:  

11. Click **Next \>** in the dialog above.

12. Click **Next \>** in this dialog:  

13. Click **Install** in this dialog:  

14. When the installation is finished; Click **Finish** in this dialog:  

15. Restart any applications or Command prompts where you want to use Graphviz.

Congratulations! You have now successfully installed Graphviz. 💪

Try restarting your computer if you still have problems running Graphviz.

## Abbreviated installation instructions (recommended for users with installation experience) 🤠

These instructions do not show every detailed step and do not show all available options. If you find them hard to follow, jump to [the detailed guidance section](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224#installation-instructions-with-detailed-guidance-recommended-for-users-without-installation-experience). If you want more options, jump to [the advanced section](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224#installation-instructions-for-custom-installations-recommended-for-advanced-users).

1. Visit the [download location](https://gitlab.com/graphviz/graphviz/-/releases)
2. Download and run the [32-bit](https://gitlab.com/graphviz/graphviz/-/package_files/6164165/download) or [64-bit](https://gitlab.com/graphviz/graphviz/-/package_files/6164164/download) exe file.
3. Ignore any security warnings you might get.
4. During the installation, make sure you select `Add Graphviz top the system PATH for current user`.
5. When the installation is finished, start **CMD** as an administrator
6. Restart any applications or Command prompts where you want to use Graphviz.

Try restarting your computer if you still have problems starting Graphviz.

## Installation instructions for custom installations (recommended for advanced users) 🤓

If you find these instructions hard to follow, jump to [the detailed guidance section](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224#installation-instructions-with-detailed-guidance-recommended-for-users-without-installation-experience).

### Download

#### Download location

Graphviz binaries for all operating systems are available at:

- https:[Releases · graphviz / graphviz · GitLab](https://gitlab.com/graphviz/graphviz/-/releases)

#### Selecting what to download

##### CMake or MSBuild

We have two different build variants:

- **CMake** (recommended for most users). Offers [32-bit](https://gitlab.com/graphviz/graphviz/-/package_files/6164165/download) and [64-bit](https://gitlab.com/graphviz/graphviz/-/package_files/6164164/download) release builds and comes with a GUI installer.
- **MSBuild** (for advanced users requiring a debug build). Offers 32-bit [debug](https://gitlab.com/graphviz/graphviz/-/package_files/6164163/download) and [release](https://gitlab.com/graphviz/graphviz/-/package_files/6164162/download) builds and is provided as a `.zip` archive only.

##### 32-bit or 64-bit

32-bit downloads are available both for `CMake` and `MSBuild`, while 64-bit downloads are available only for CMake.

##### Release or Debug

Release builds are available both for `CMake` and `MSBuild`, while `Debug` builds are available only for `MSBuild and only for 32-bit`

### Installation of `CMake` binaries

Just run the installer as an administrator. We recommend you select **Add Graphviz top the system PATH for current user** during the installation to avoid having to do this manually.

### Installation of `MSBuild` binaries

Unzip the `.zip` archive to a location of your choice and add that location followed by `\Graphviz\Bin` to the `PATH` environment variable.

# Direct links to all possible Windows downloads

| Build | Stable | |
| --- | --- | --- |
| | **CMake** | **MSBuild** |
| **32-bit release** | [yes](https://gitlab.com/graphviz/graphviz/-/package_files/6164165/download) | [yes](https://gitlab.com/graphviz/graphviz/-/package_files/6164162/download) |
| **32-bit debug** | [yes](https://gitlab.com/graphviz/graphviz/-/package_files/6164168/download) | [yes](https://gitlab.com/graphviz/graphviz/-/package_files/6164163/download) |
| **64-bit release** | [yes](https://gitlab.com/graphviz/graphviz/-/package_files/6164164/download) | no |
| **64-bit debug** | [yes](https://gitlab.com/graphviz/graphviz/-/package_files/6164167/download) | no |

# Uninstalling Graphviz

1. Open the **Control Panel**
2. Click on **Uninstall a program**
3. Click on the Graphviz version you want to uninstall
4. Click on **Uninstall/Change**
5. Click on **Yes**
6. Click on **Uninstall**
7. When the uninstallation is complete, click on **Close**

# Known issues

These issues are already known to us and will be addressed as soon as we are able:

> **[The Windows 'CMake' installer does not install neato, gvpr, fdp and others...](https://gitlab.com/graphviz/graphviz/-/issues/1753)**
>
> Steps to reproduce Install Graphviz using the CMake installer, e.g. by following these instructions...

---

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [June 29, 2020, 4:06pm UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/2 "2020-06-29T16:06:27Z")

</div>



---

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [June 29, 2020, 4:06pm UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/3 "2020-06-29T16:06:48Z")

</div>



---

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [June 29, 2020, 4:07pm UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/4 "2020-06-29T16:07:07Z")

</div>



---

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [June 29, 2020, 4:07pm UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/5 "2020-06-29T16:07:19Z")

</div>



---

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [June 29, 2020, 4:07pm UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/6 "2020-06-29T16:07:39Z")

</div>



---

<div class="post-metadata">

**Author:** ![steveroush](https://avatars.discourse-cdn.com/v4/letter/s/a9adbd/32.png) [@steveroush](https://forum.graphviz.org/u/steveroush)\
**Post date:** [June 29, 2020, 10:15pm UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/7 "2020-06-29T22:15:06Z")

</div>

Excellent! This has been one of the biggest problems for years (on the Graphviz site and on stackoverflow). And extra courage points for non-Windows developers to do this!  
OK:  
OS Name: Microsoft Windows 10 Home  
OS Version: 10.0.18363 N/A Build 18363  
Browser: Firefox 78.0  
User level, Windows user for many years, a Linux developer, but not a Windows developer

I installed **64-bit,** mostly following instructions (they were very clear & detailed, but I’ve been installing programs on Windows for decades). The installation was straight-forward with no surprises - except:

- **neato, gvpr, fdp and some others were not part of the installation** (if you need a list, I’ll provide) This was a surprise. If it was intentional, the documentation should call it out.

One other suggestion, my old version (Graphviz2.38) was left untouched. This is fine with me, but the installation instructions might mention how to remove old versions if so desired.

All-in-all clean-and-tidy! Good work!

p.s. running **systeminfo** in the **cmd** window gives the desired OS info

---

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [June 30, 2020, 6:17am UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/8 "2020-06-30T06:17:43Z")

</div>

Thank you so much for the detailed review and the kind words.

> [@steveroush](#):
>
> **neato, gvpr, fdp and some others were not part of the installation** (if you need a list, I’ll provide) This was a surprise. If it was intentional, the documentation should call it out.

It was a surprise to me too. None of us current maintainers know the intentions of the current state.

I filed an [issue](https://gitlab.com/graphviz/graphviz/-/issues/1753) about it. You are welcome to fill in with the complete list and other info that you might have.

> [@steveroush](#):
>
> One other suggestion, my old version (Graphviz2.38) was left untouched. This is fine with me, but the installation instructions might mention how to remove old versions if so desired.

Good point. In the future we might have an installer that does this, but I’ve added it to the instructions now.

> [@steveroush](#):
>
> p.s. running **systeminfo** in the **cmd** window gives the desired OS info

Thanks, that was new to me. I think however that users needing instructions for this are better served by the article I linked so I’ll leave the instructions as they are.

---

<div class="post-metadata">

**Author:** ![wassfila](https://avatars.discourse-cdn.com/v4/letter/w/7bcc69/32.png) [@wassfila](https://forum.graphviz.org/u/wassfila)\
**Post date:** [June 30, 2020, 6:21pm UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/9 "2020-06-30T18:21:25Z")

</div>

That’s really cool, things keep improving. Although I use linux a lot, I always need Windows.  
As a developper, I cannot judge how hard is the install for unexprienced users, but I do have questions, or feedbacks, comments.

- Is it possible to have a windows standalone zip binary ? In other words, is the install really necessary. I’m no expert in installs, I think it’s mainly needed for registry update and licensing checks, open source sw have the luxury to be able to avoid that.

- Is there any interest in Docker ? where dot would be provided as a service through a port ? less efficient when on the same machine indeed, but might allow different deployment and usage models.

- Here now a bit more of imagination. What is still the difference between the installable binaries and the wasm port of them ? I’ve seen that node-graphviz also needs graphviz to be installed, maybe in the future wasm will come to node and we’d solve all those install steps.

---

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [July 1, 2020, 6:39am UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/10 "2020-07-01T06:39:02Z")

</div>

> [@wassfila](#):
>
> Is it possible to have a windows standalone zip binary ?

I think this is what is described [here](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224#installation-of-msbuild-binaries), but if you mean something else, please clarify.

> [@wassfila](#):
>
> Is there any interest in Docker ? where dot would be provided as a service through a port ?

We currently use Docker containers with installed prerequisites when building for Linux and plan to create Docker images for Windows too at a later stage, but haven’t thought of providing Docker images _including_ Graphviz.

> [@wassfila](#):
>
> What is still the difference between the installable binaries and the wasm port of them ?

Installable binaries run natively on the computer while [WASM](https://en.wikipedia.org/wiki/WebAssembly) runs in a browser (at least this is the primary purpose).

---

<div class="post-metadata">

**Author:** ![wassfila](https://avatars.discourse-cdn.com/v4/letter/w/7bcc69/32.png) [@wassfila](https://forum.graphviz.org/u/wassfila)\
**Post date:** [July 1, 2020, 6:01pm UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/11 "2020-07-01T18:01:47Z")

</div>

Thanks for the answers,  
I got confused about the binaries, and checked only the first that had an installer, but it’s actually the MSBuild that is a standalone zip install. Then everything is perfect.

Creating a docker image with graphviz is trivial for advanced docker users. This point might be relevant only in case it would be planned to support a sort of server service with a rest API on top of dot binary. I’ve seen this done once, maybe I can prototype that in the near future. I admit that given the high portability of Graphviz, it is less interesting to call it through a rest API hosted on another server, as a usage model as it can easily be included in every server or even web page. Here I might refer to the [http://www.plantuml.com/plantuml/](http://www.plantuml.com/plantuml/) service as example, it makes integration easier in code editors plugins, but I also don’t like much the runtime dependency to an external server, so this point is not of much relevance.

The difference between WASM and a native binary is clear. I had doubts if the WASM port would produce any different result or would have any limitation in terms of features or options, but given the answers I assume that results produced by both are either binary identical or at least very similar within the computation precision variations of each platform.

Thanks a gain and keep up the good work.

---

<div class="post-metadata">

**Author:** ![RedBaron](https://avatars.discourse-cdn.com/v4/letter/r/3bc359/32.png) [@RedBaron](https://forum.graphviz.org/u/RedBaron)\
**Post date:** [September 3, 2020, 2:26am UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/12 "2020-09-03T02:26:04Z")

</div>

@magjac  
I’m going to ask the simple question of the command line argument switches for a silent install of the cmake version? This is for the Chocolatey package.  
Example: `C:\installer.exe /silent`  
Thanks for any help in this matter.

---

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [September 3, 2020, 5:21am UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/13 "2020-09-03T05:21:32Z")

</div>

In PowerShell you can do this with something like:

`graphviz-install.exe /S /D=$env:graphviz_install_dir | Out-Null`

CMD does not have the `Out-Null`, but otherwise it should be similar.

We use this in our [CI pipeline configuration file](https://gitlab.com/graphviz/graphviz/-/blob/master/.gitlab-ci.yml#L108) where there also are some comments that might be useful:

_Install using installer and add bin directory to path. Piping the output of the installer to Out-Null, makes the script wait for the .exe to exit, instead continuing to the next command (which will then fail because the install hasn’t finished)_

---

<div class="post-metadata">

**Author:** ![mark](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/mark/32/84_2.png) [@mark](https://forum.graphviz.org/u/mark)\
**Post date:** [September 3, 2020, 6:22am UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/14 "2020-09-03T06:22:15Z")

</div>

Powershell doesn’t wait for commands to exit? That’s pretty wild…

---

<div class="post-metadata">

**Author:** ![magjac](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/magjac/32/16_2.png) [@magjac](https://forum.graphviz.org/u/magjac)\
**Post date:** [September 3, 2020, 6:55am UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/15 "2020-09-03T06:55:29Z")

</div>

I really don’t know. I inherited this from the [Appveyor config](https://gitlab.com/graphviz/graphviz/-/blob/master/appveyor.yml#L64). I guess I should have tried it before blindly copying it.

That said; it’s not at all wild compared to other things that PowerShell does. The review comments of [this MR](https://gitlab.com/graphviz/graphviz/-/merge_requests/1529) contains links to many PowerShell absurdnesses that are far worse. My favorite is [this comment](https://gitlab.com/graphviz/graphviz/-/merge_requests/1529#note_401165629) that leads to [this issue](https://github.com/MicrosoftDocs/PowerShell-Docs/issues/1583) which could be a nice read on a rainy day as an alternative to watching a horror movie.

---

<div class="post-metadata">

**Author:** ![mark](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/mark/32/84_2.png) [@mark](https://forum.graphviz.org/u/mark)\
**Post date:** [September 5, 2020, 1:36am UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/16 "2020-09-05T01:36:39Z")

</div>

I’m just driving-by, I haven’t actually tried running this, but I think that comment might be mistaken, from looking at some docs

- [https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/out-null?view=powershell-7](https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/out-null?view=powershell-7)
- [https://www.reddit.com/r/PowerShell/comments/a85r1s/why\_outnull/](https://www.reddit.com/r/PowerShell/comments/a85r1s/why_outnull/)

It sounds like “| Out-Null” is the equivalent of “\> /dev/null”.

I think powershell commands wait for the previous command to finish (I don’t believe powershell executes commands automatically in parallel - how would ‘cd’ work if it does?).

I think perhaps when running

./graphviz-install.exe /S /D=$env:graphviz\_install\_dir | Out-Null;

I think the Out-Null just makes it so the console output of graphviz-install.exe doesn’t show up on screen?

---

<div class="post-metadata">

**Author:** ![mark](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/mark/32/84_2.png) [@mark](https://forum.graphviz.org/u/mark)\
**Post date:** [September 5, 2020, 1:45am UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/17 "2020-09-05T01:45:54Z")

</div>

Just sent [https://gitlab.com/graphviz/graphviz/-/merge\_requests/1558](https://gitlab.com/graphviz/graphviz/-/merge_requests/1558) to see if the CI will pass without that “Out-Null”.

---

<div class="post-metadata">

**Author:** ![mark](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/mark/32/84_2.png) [@mark](https://forum.graphviz.org/u/mark)\
**Post date:** [September 5, 2020, 2:39am UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/18 "2020-09-05T02:39:58Z")

</div>

I was wrong: the Out-Null is required (thank you Matthew!). graphical .exes aren’t waited on, but normal console commands like “out-null” are waited on. What a wild system.

---

<div class="post-metadata">

**Author:** ![scnorth](https://sea2.discourse-cdn.com/graphviz/user_avatar/forum.graphviz.org/scnorth/32/89_2.png) [@scnorth](https://forum.graphviz.org/u/scnorth)\
**Post date:** [September 5, 2020, 1:26pm UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/19 "2020-09-05T13:26:40Z")

</div>

I recently learned that if a Powershell script accepts parameters, then `param(...)` must be the absolute first line of the script. It can’t be the second line, following a comment or anything else. Powershell has some other surprises. I get the idea they did not spend enough talking with other people that had written shell interpreters. Given they were starting with a blank slate, they could have made some things simpler. I actually don’t fully understand its model where both strings and structured objects seem to be lurking under the surface.

---

<div class="post-metadata">

**Author:** ![Kyra](https://avatars.discourse-cdn.com/v4/letter/k/ea5d25/32.png) [@Kyra](https://forum.graphviz.org/u/Kyra)\
**Post date:** [October 2, 2020, 5:49am UTC](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224/20 "2020-10-02T05:49:34Z")

</div>

![image](https://global.discourse-cdn.com/graphviz/original/1X/20dd5ec314a1de4256c2eb3c2719d60f93f389ed.png)

I am trying to download from your website, but it is not exactly straight forward! Above is what I am seeing.

[Next page](https://forum.graphviz.org/t/new-simplified-installation-procedure-on-windows/224.md?page=2)
