LINQPad and Portable Deployments

LINQPad can be xcopied for portable or shared deployment, simply by copying the following runtime files:

LINQPad 5 LINQPad 9
LINQPad.exe
LINQPad.exe.config
LINQPad9-x64.exe
LINQPad9-x86.exe
LINQPad9-arm64.exe
LINQPad.GUI.dll
LINQPad.Runtime.dll

No special setup is required. However, you may also wish to include scripts, plugins, snippets, connections, drivers, default namespaces/references and user preferences with your deployment. Normally, scripts, plugins, snippets and settings are stored in folders under My Documents, and most other data is stored in AppData\LINQPad. However, if you create specially named subfolders under where you've put LINQPadx.exe, those local folders will be used for this data instead.

Portable Deployment Files

Here's a summary of a portable deployment. All items are optional apart from runtime files.

MyFolder/
         (runtime files)
         LPRun.exe.*                    -- Include if you want command-line support
         scripts/ (or queries/)         -- Put your scripts here
         plugins/                       -- Put your plugins + 'My Extensions' script here
         snippets/                      -- Put custom snippets here
         drivers/                       -- Put custom drivers here
         claude/                        -- Customizations for Claude Code (CLAUDE.md, skills)
         settings/                      -- See section below
         InstallationName.txt           -- Optional name to display in the title bar
         ConnectionsV2.xml              -- Connections to populate Schema tree view
         DefaultScript.LP9.xml          -- Default namespaces/references for new scripts
         ResultStyles.css               -- Custom result styling (LINQPad 5)
         ResultStyles.LINQPad8.css      -- Custom result styling (LINQPad 8)
         ResultStylesLight.LINQPad9.css -- Custom result styling (LINQPad 9)
         ResultStylesDark.LINQPad9.css  -- Custom result styling (LINQPad 9)

Script files

To include scripts with your deployment, create a subfolder under the LINQPad.exe folder called scripts or queries. Any .LINQ files/folders that you put in here will now appear in the My Scripts tree view (in place of My Documents/LINQPad Queries. This can be useful when deploying LINQPad to a corporate intranet, where you want to present users with a set of queries they can run.

Extensions and Plugins

If your scripts depend on My Extensions, you can ship this, too. Create a subfolder under the LINQPad.exe folder called plugins and then move/copy the content of My Documents/LINQPad Plugins into here. Note that any DLLs in this folder are automatically referenced by all scripts. You don't need to reference them explicity in the 'My Extensions' script.

Custom Code Snippets

If you have any custom code snippets in My Documents/LINQPad Snippets, you can localize this too, by creating a folder under LINQPad.exe called snippets and copying/moving your snippets there.

Custom Data Context Drivers

Custom and downloaded data context drivers are normally stored in %LocalAppData%\LINQPad\drivers. If your scripts or connections rely on drivers that are not built-in, you can copy or move this folder into a local folder called drivers.

Connections

The connections that appear in the tree view when you start LINQPad are normally stored in %AppData%\LINQPad\ConnectionsV2.xml. If you move/copy this file into the folder where LINQPad.exe is located, the latter will take precedence. If it's a shared location, you can make it read-only to prevent consumers from persisting changes. (Connection groups, if you've defined any, are stored alongside in ConnectionGroups.xml and follow the same override behavior.)

(If you choose not to include the ConnectionsV2.xml file, scripts that rely on connections will still work, because the connection data is also reified in each .LINQ file.)

Default Namespaces/References for New Scripts

LINQPad lets you select a default set of namespace imports and assembly references by going to 'References and Properties' (F4) and pressing 'Set as default for new scripts'. The result is normally stored in %AppData%\LINQPad\DefaultScript.LP9.xml (LINQPad 9) or %AppData%\LINQPad\DefaultQuery.xml (LINQPad 5). If you move/copy this file into the folder where LINQPad.exe is located, the latter will take precedence. If it's a shared location, you can make it read-only to prevent consumers from making changes.

Installation Name

If you create a text file called InstallationName.txt, its content will be appended to the LINQPad title bar. Useful when running multiple LINQPad installations on the same machine and you want to tell them apart at a glance.

Claude Code Customizations

Claude Code customizations (CLAUDE.md, .claude\skills\) are normally stored under your LINQPad settings folder. If you create a folder called claude alongside LINQPad.exe, that folder will be used instead — making the customizations portable with the install.

Machine-local Claude Code config (mcp.json, settings.json) is normally stored in %LocalAppData%\LINQPad\Claude\config. If you've created a portable claude folder (as above), you can additionally portablize mcp.json and/or settings.json on a per-file basis by placing a copy of either file inside that folder. The portable copy takes precedence when present — useful when you want multiple sets of Claude config (for example, different MCP servers) on the same machine.

Portable Deployment Files - Settings

In addition to the items above, you can optionally portablize most settings.

There are TWO ways to proceed:

  1. Mix and match: Copy or move ANY combination of the files below from their default location directly into the LINQPad folder. Only files that you copy/move will override what's in the default location.
  2. Replace all: Create a settings subfolder in the LINQPad folder. LINQPad will then ONLY look in that subfolder when reading and writing the files described below. Omitted files will create factory defaults. Not recommended in shared use scenarios, because users may end up fighting each other. Supported in LINQPad 9+.
MyFolder/
   OR
MyFolder/settings/:
         ...
         RoamingUserOptions.xml          -- General User Settings
         NuGetSources.xml                -- NuGet source settings
         NuGetConfig.xml                 -- Additional NuGet config settings
         AutoFormattingOptions.xml       -- Options for auto formatting code
         AIOptions.xml                   -- AI general settings
         AIProviders.json                -- Customizations to models and AI providers
         LINQPad.Windows.KeyBindings.txt -- Keyboard customizations for Windows
         LINQPad.macOS.KeyBindings.txt   -- Keyboard customizations for macOS

The default location for these files is as follows:

LINQPad 9 (Windows): Documents\LINQPad Settings\
LINQPad 9 (macOS): ~/LINQPad/Settings/
LINQPad 5: %AppData%\LINQPad\

(Note that LINQPad 9+ lets you customize the default location in Settings | Folders.)