Kentico UserInfoProvider no funciona como se esperaba en una aplicación de consola

Este código funciona bien en un sitio web de Kentico:

var users = UserInfoProvider.GetUsers();
for (int x = 0; x < users.Count(); x++
{
    UserInfo currentUser = users.ElementAt(x);
    currentUser.SetValue("AcceptsAlerts", equivalentSubscriber.Status != SubscriberStatus.Unsubscribed);
    UserInfoProvider.SetUserInfo(currentUser);
}

Cuando muevo el código a una aplicación de consola, cualquier llamada a UserInfoProvider da como resultado el error: "Tipo de objeto 'cms.usersettings' no encontrado"

Para la llamada inicial para obtener los usuarios, puedo hacerlo así en la aplicación de consola:

DataSet usersds = new CMS.DataEngine.DataQuery("cms.user.selectall").Execute();

luego recorra la Tabla 1 del conjunto de datos utilizando los datos del usuario:

UserInfo currentUser = new UserInfo(dtUsers.Rows[x]);

Todo está bien y funcionando, hasta que vuelva a escribir el usuario actualizado en la base de datos. No puedo encontrar otra forma de escribir los datos aparte de llamar:

UserInfoProvider.SetUserInfo(currentUser);

¿Alguien sabe otra forma de guardar los datos del usuario? o para resolver el error. El error es un error de tiempo de ejecución y, que yo sepa, he hecho referencia a todo lo que necesito. El campo que estoy editando es un campo personalizado agregado a la tabla cmsUser.

usando declaraciones para información:

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using CMS;
using CMS.CustomTables;
using CMS.DataEngine;
using CMS.Membership;

Respuestas a la pregunta(3)

Su respuesta a la pregunta