Para agregar a otras razones.
Tenía una solución VS2010/csproj que hacía referencia a Enterprise Library 5.0.xxxxx.
Sin embargo, el csproj se estableció en "Target 3.5 Framework". Por lo tanto, o bien tenía que orientarme al marco de trabajo 4.0 o "bajar" a la versión 3.5 de Enterprise Library.
Pude actualizar mi marco de destino a 4.0, y luego los errores desaparecieron.
Esto es lo que puede hacer para averiguar qué versión del marco del código fue compilado para: (mini script de PowerShell)
[System.Reflection.Assembly]::LoadFrom("c:\somefolder\Any_Of_The_Practices.dll").ImageRuntimeVersion
Si obtiene v2.0.50727, entonces tendrá problemas para ejecutar bajo Framework 4.0 (o superior).
EDIT:
También me dio este error al no tener las "correctas" DbProviderFactories definidos. Estoy publicar una configuración de MySQL que he encontrado en esta dirección: (copio que, en caso de que la URL muere en el futuro)
(De http://searchcode.com/codesearch/view/14385662)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true"/>
</configSections>
<system.data>
<DbProviderFactories>
<add name="EntLibContrib.Data.MySql"
invariant="EntLibContrib.Data.MySql"
description="EntLibContrib Data MySql Provider"
type="EntLibContrib.Data.MySql.MySqlDatabase, EntLibContrib.Data.MySql, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null" />
</DbProviderFactories>
</system.data>
<dataConfiguration defaultDatabase="Default Connection String">
<providerMappings>
<add databaseType="EntLibContrib.Data.MySql.MySqlDatabase, EntLibContrib.Data.MySql, Version=5.0.505.0, Culture=neutral, PublicKeyToken=null"
name="EntLibContrib.Data.MySql"/>
</providerMappings>
</dataConfiguration>
<connectionStrings>
<add name="Default Connection String"
connectionString="database=northwind;uid=root;pwd=admin"
providerName="EntLibContrib.Data.MySql"/>
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
</configuration>
Por último:
Una vez que obtuve este error porque no tenía un ConnectionString (en el archivo de configuración) con el mismo nombre que el valor de DefaultDatabase. Aka, el error simple de "calavera adormecida".
Puede poner este código de válvula de seguridad (justo antes de crear la base de datos) si lo desea.
DatabaseSettings dataConfig = (DatabaseSettings)ConfigurationManager.GetSection("dataConfiguration");
string configDefaultDatabase = string.Empty;
if (null != dataConfig)
{
configDefaultDatabase = dataConfig.DefaultDatabase;
if (!String.IsNullOrEmpty(configDefaultDatabase))
{
ConnectionStringSettingsCollection connections = ConfigurationManager.ConnectionStrings;
if (null == connections[configDefaultDatabase])
{
throw new ArgumentOutOfRangeException(
string.Format(
"Your dataConfiguration (DefaultDatabase) does not match any of your connection strings. DefaultDatabase='{0}'.",
configDefaultDatabase));
}
}
}
¿Hay alguien aquí que pueda ayudar? –
El archivo de configuración probablemente debería estar con el proyecto de prueba, pero no estoy seguro si eso funciona. ¿Qué marco de prueba estás usando? –
Sí, me di cuenta de que estaba haciendo referencia a la copia incorrecta .dll. funciona ahora, gracias por la ayuda./ –