Missing api-ms-win-core-localization-obsolete-l1-2-0.dll on Win Server 2012 Standard
Hi! Sorry if this is a dump issue, but I can't fire out how to solve this:
I'm trying to deploy an .NET Core console app that uses SqlTableDependency. But when I run it I get always the same error: Unable to load DLL 'api-ms-win -core-localization-obsolete-l1-2-0.dll' I've tried multiple SDK versions (2.1, 2.2, 3.1), I even trying to compile the app on this server but the results is always the same.
Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'api-ms-win
-core-localization-obsolete-l1-2-0.dll' or one of its dependencies: No se puede
encontrar el módulo especificado. (Exception from HRESULT: 0x8007007E)
at System.Data.LocaleMapper.LCIDToLocaleName(UInt32 Locale, Char* lpName, Int
32 cchName, Int32 dwFlags)
at System.Data.LocaleMapper.LcidToLocaleNameInternal(Int32 lcid)
at System.Data.Locale.GetDetailsInternal(Int32 lcid)
at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Fu
nc`2 valueFactory)
at System.Data.SqlClient.TdsParser.GetCodePage(SqlCollation collation, TdsPar
serStateObject stateObj)
at System.Data.SqlClient.TdsParser.TryProcessEnvChange(Int32 tokenLength, Tds
ParserStateObject stateObj, SqlEnvChange[]& sqlEnvChange)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand
cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,
TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cm
dHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, Tds
ParserStateObject stateObj)
at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlis
tOK)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo
serverInfo, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFail
over)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo
serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOption
s, TimeoutTimer timeout)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTime
r timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance
)
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdent
ity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolea
n redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData
reconnectSessionData, Boolean applyTransientFaultHandling)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOp
tions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConn
ectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConn
ectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConne
ctionPoolKey poolKey, DbConnectionOptions userOptions)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owning
Object, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection o
wningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection
)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection ow
ningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean o
nlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& co
nnection)
at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection ow
ningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbCon
nectionInternal& connection)
at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection
owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions
, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(Db
Connection outerConnection, DbConnectionFactory connectionFactory, TaskCompletio
nSource`1 retry, DbConnectionOptions userOptions)
at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at TableDependency.SqlClient.SqlTableDependency`1.CheckIfConnectionStringIsVa
lid()
at TableDependency.SqlClient.Base.TableDependency`1..ctor(String connectionSt
ring, String tableName, String schemaName, IModelToTableMapper`1 mapper, IUpdate
OfModel`1 updateOf, ITableDependencyFilter filter, DmlTriggerType dmlTriggerType
, Boolean executeUserPermissionCheck)
at TableDependency.SqlClient.SqlTableDependency`1..ctor(String connectionStri
ng, String tableName, String schemaName, IModelToTableMapper`1 mapper, IUpdateOf
Model`1 updateOf, ITableDependencyFilter filter, DmlTriggerType notifyOn, Boolea
n executeUserPermissionCheck, Boolean includeOldValues)
Any hint or help will be appreciated.
Thanks
I do not maintain any more this Repository.
This windows DLL api-ms-win -core-localization-obsolete-l1-2-0.dll is referenced by an outdated version of SQLClient. Update the SQLClient package through nuget to a newer version and this obsolete windows dll will no longer be referenced.