# Configuring Package Sources

> Get the WPF package from Text Control Offline Packages, the private NuGet feed with API token and nuget.config, or an internal Azure Artifacts mirror.

- **Product:** TX Text Control .NET for WPF
- **Section:** Documentation
- **Kind:** Topic
- **Path:** TX Text Control .NET for WPF > Installation Guide > NuGet Packages > Configuring Package Sources
- **1895 words**
- **Web URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/nuget/sources/
- **LLMs URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/nuget/sources/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/nuget/sources/llms-full.txt

---

Where does NuGet find `TXTextControl.TextControl.WPF.SDK`? Not on nuget.org: the package comes from a local folder that the setup of TX Text Control .NET for WPF installs, from the Text Control Private NuGet Feed, or from a feed in your organization that mirrors it. Read on for how each source is set up in Visual Studio and in *nuget.config*, and which one belongs on a developer's machine and which on a build server.

### Choose a Source

| Source | Where it is | Use it for |
|---|---|---|
| **Text Control Offline Packages** | *C:\\Program Files (x86)\\Text Control GmbH\\NuGetPackages*, installed by the setup | Development in Visual Studio with the XAML designer |
| **Text Control Private NuGet Feed** | `https://www.textcontrol.com/nuget/v3/index.json`, authenticated with your email address and an API token | Build servers and CI/CD pipelines |
| A feed of your own | For example Azure Artifacts, with the package pushed from the offline folder | Build systems in your organization |

The WPF package on the private feed is meant for compiling only and has no design-time components. Creating applications and working with the Visual Studio designers requires the setup on the development machine, which also brings the offline source. See [Installing the Product](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/setup/llms-full.txt).

### Text Control Offline Packages

The full setup copies the package into *C:\\Program Files (x86)\\Text Control GmbH\\NuGetPackages* and registers the folder in Visual Studio as the package source **Text Control Offline Packages**. You choose it in the **Package source** list of the NuGet Package Manager, as [Installing and Updating Packages](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/nuget/install-update/llms-full.txt) shows.

The .NET CLI and builds outside Visual Studio read the sources of *nuget.config*. To make the folder available to them, put a *nuget.config* next to your project or solution:

```xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="TextControlLocal" value="C:\Program Files (x86)\Text Control GmbH\NuGetPackages" />
  </packageSources>
</configuration>
```

The `value` can point to any folder or package repository into which you copied the package.

### Text Control Private NuGet Feed

The private feed signs you in with the email address of a developer who has a serial number assigned and an API token. It lists only the packages and versions that this developer is licensed for: a developer with a license of TX Text Control .NET for WPF sees `TXTextControl.TextControl.WPF.SDK`, and a developer without one doesn't. Before a package is downloaded, the feed adds the developer's license to it. The license agreement grants access to the feed during an active subscription; packages downloaded in that time remain yours to use after it ends.

The following screenshot shows the NuGet Package Manager of Visual Studio with the package source **TextControl** selected. The list includes `TXTextControl.TextControl.WPF.SDK`:

![The NuGet Package Manager of Visual Studio with the package source TextControl, listing the TX Text Control packages of version 34.0 including TXTextControl.TextControl.WPF.SDK.](https://docs.textcontrol.com/assets/img/tx-text-control-dotnet-wpf/nuget-private-feed.3b1e1913.webp)

#### Get an API Token

When the owner of the Text Control account assigns a serial number with NuGet access to you, as [Assign a Serial Number to a Developer](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/licensing/development/#assign-a-serial-number-to-a-developer) shows, an API token is created automatically. You receive an email with the serial number and a link to download your personal *nuget.config*.

An automatically created token is valid for 365 days, and assigning a serial number again extends it. Under **Manage API tokens**, the account owner can also create a token with a validity of 1 to 730 days. When the last serial number with NuGet access is unassigned from a developer, their token is deleted.

#### Put nuget.config Into the Project

Save the downloaded *nuget.config* in the root folder of your project. Its content looks like this, with your own values:

```xml
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="TextControl" value="https://www.textcontrol.com/nuget/v3/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <TextControl>
      <add key="Username" value="YOUR_EMAIL" />
      <add key="ClearTextPassword" value="YOUR_API_TOKEN" />
    </TextControl>
  </packageSourceCredentials>
</configuration>
```

- **`<clear />`** drops the sources of other configuration files, so that the project restores from nuget.org and the Text Control feed only. Add the offline folder here if you want to use both.
- **`TextControl`** is the name of the package source. It is the entry you select in Visual Studio and the name you pass to `--source` in the .NET CLI.
- **The credentials** are in plain text. Don't commit the file. On a build server, create it during the build from secrets, as [Build Servers](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/licensing/build-servers/llms-full.txt) shows.

If Visual Studio doesn't list the source **TextControl** after you add the file, choose **Tools** > **NuGet Package Manager** > **Package Manager Settings**, open **Configuration Files**, select and open the *NuGet.Config* file listed there, replace its content with your downloaded file and save it.

The blog article [Text Control Private NuGet Feed](https://www.textcontrol.com/blog/2026/02/09/text-control-private-nuget-feed/) describes the feed in full, with pipeline configurations for several CI/CD systems.

### A Feed of Your Own

You may keep the Text Control packages in an internal repository for your licensed developers and build systems, but not publish them for anyone else. With Azure Artifacts, for example:

1. In Azure DevOps, open **Artifacts**, click **Create Feed**, then **Connect to Feed** and **NuGet.exe**, and copy the feed URL.
2. On a machine with the setup, push the *.nupkg* file of `TXTextControl.TextControl.WPF.SDK` from the offline folder to the feed with `nuget.exe push`.
3. Add the feed to the *nuget.config* of your project, with a personal access token of Azure DevOps as the password.

The blog article [Azure Pipelines with TX Text Control .NET for WPF and Windows Forms 32.0 with Azure DevOps and Artifacts](https://www.textcontrol.com/blog/2024/01/05/azure-pipelines-with-tx-text-control-net-for-wpf-and-windows-forms-320-with-azure-devops-and-artifacts/) walks through these steps and the pipeline that uses the feed.

### Related Pages

- [Package Overview](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/nuget/packages/llms-full.txt): what the package contains and which version is which service pack.
- [Installing and Updating Packages](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/nuget/install-update/llms-full.txt): install the package from the source you set up.
- [Build Servers](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/licensing/build-servers/llms-full.txt): restore the package in a CI/CD pipeline.
- [Installation and Package Restore](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/troubleshooting/installation/llms-full.txt): when a source doesn't deliver the package.

---

## Nearby

- **Previous:** [Package Overview](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/nuget/packages/llms-full.txt)
- **Next:** [Installing and Updating Packages](https://docs.textcontrol.com/tx-text-control-dotnet-wpf/installation/nuget/install-update/llms-full.txt)
