Configuring Package Sources
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.
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 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:
<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:

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 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:
<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.TextControlis the name of the package source. It is the entry you select in Visual Studio and the name you pass to--sourcein 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 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 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:
- In Azure DevOps, open Artifacts, click Create Feed, then Connect to Feed and NuGet.exe, and copy the feed URL.
- On a machine with the setup, push the .nupkg file of
TXTextControl.TextControl.WPF.SDKfrom the offline folder to the feed withnuget.exe push. - 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 walks through these steps and the pipeline that uses the feed.