# Windows - Seafile Admin Manual
Author: seafile

Skip to content

# Windows

## Environment Setup

The following setups are required for building and packaging Sync Client on Windows:

- Visual Studio 2019
  - Desktop development with C++
    - MSVC v142
    - Windows 10 SDK (10.0.19041.0) (installed by default, not used)
    - Windows 10 SDK (10.0.18362.0)
  - Universal Windows Platform development
    - Windows 10 SDK (10.0.18362.0)
- Qt 6.5
  - MSVC 2019 64-bit
  - Qt 5 Compatibility Module
  - Qt Positioning
  - Qt Serial Port
  - Qt WebChannel
  - Qt WebEngine
- Qt VS Tools
- vcpkg (it is recommended to update to the latest version)
  - Run `vcpkg.exe integrate install` to integrates vcpkg with projects.
  - Note: Dependencies will be automatically downloaded and compiled when building VS projects.

## Building Sync Client

Following directory structures are expected when building Sync Client:

    seafile-workspace/
    seafile-workspace/libsearpc/
    seafile-workspace/seafile/
    seafile-workspace/seafile-client/
    seafile-workspace/seafile-shell-ext/

The source code of these projects can be downloaded at github.com/haiwen/libsearpc, github.com/haiwen/seafile, github.com/haiwen/seafile-client, and github.com/haiwen/seafile-shell-ext.

### Building

Note: these commands are run in "x64 Native Tools Command Prompt for VS 2019". The "Debug|x64" configuration is simplified to build, which does not include breakpad and other dependencies.

To build libsearpc:

    $ cd seafile-workspace/libsearpc/
    $ devenv libsearpc.sln /build "Debug|x64"

To build seafile

    $ cd seafile-workspace/seafile/
    $ devenv seafile.sln /build "Debug|x64"
    $ devenv msi/custom/seafile_custom.sln /build "Debug|x64"

To build seafile-client

    $ cd seafile-workspace/seafile-client/
    $ devenv third_party/quazip/quazip.sln /build "Debug|x64"
    $ devenv seafile-client.sln /build "Debug|x64"

To build seafile-shell-ext

    $ cd seafile-workspace/seafile-shell-ext/
    $ devenv extensions/seafile_ext.sln /build "Debug|x64"
    $ devenv seadrive-thumbnail-ext/seadrive_thumbnail_ext.sln /build "Debug|x64"

### Packaging

Additional setups are required for packaging:

- Python 3.7
- wix
  - install to C:\wix
- Paraffin
  - copy Paraffin.exe to C:\wix\bin
- Breakpad
  - Seafile Client is currently using an older version of Breakpad. The latest version may not be fully compatible, and we are in the process of upgrading it.

- Certificates

  - install to C:\certs

- Update the CERTFILE configure in seafile-workspace/seafile/scripts/build/build-msi-vs.py .

- Run commands:

      $ cd seafile-workspace/seafile-client/third_party/quazip
      $ devenv quazip.sln /build Release|x64
      $ cd seafile-workspace/seafile/scripts/build
      $ python build-msi-vs.py 1.0.0