- Visual Studio 2012
- SQLite 1.0.82.0 (da NuGet)
Sto cercando di utilizzare il "Run All" comando nel "test Explorer" il seguente errore si verifica dopo aver eseguito il test una volta ... dopo che non costruirà più, fino a quando si riavvia visual StudioSQLite.Interop.dll bloccato dopo che eseguono Visual Studio 2012 Unità quadro di prova test
Ecco l'errore di generazione
il processo non può accedere al file 'SQLite.Interop.dll' perché è utilizzato da un altro processo
ecco il codice
using System.Data.SQLite;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace Test.Sqlite
{
[TestClass]
public class Test_Sqlite_Locking
{
[TestMethod]
public void can_create_table()
{
using(var fact = new SQLiteFactory())
using (var conn = fact.CreateConnection())
{
conn.ConnectionString = "Data Source=:memory:;Version=3;New=True;";
conn.Open();
//conn.Close();
}
//SQLiteConnection.ClearAllPools();
//GC.Collect();
}
}
}
Ho provato, chiusura della connessione, chiamando ClearAllPools, GC.Collect e creando SQLiteConnection direttamente (anziché Factory) ... ancora lo stesso problema
Questo funziona se DEBUGATE TUTTI I TEST ... ma è quando si eseguono i test che si s sembra bloccarlo fino
Si può avvolgere un Try Catch attorno al conn.open e vedere quale errore si sta tentando di mantenere tale connessione ..? se così fosse dopo la connessione dovrebbe essere Smaltato di averlo avvolto dentro usando un {} – MethodMan
ho provato che ... ma questo errore è un errore BUILD ... non un errore di runtime ... e succede solo dopo aver eseguito "Esegui" i test, dopo di che appare Visual Studio ha ancora qualcosa di aperto e il file della libreria è bloccato – ObeseCoder
quale riga esegue l'errore in ..? il utilizzando (var = new fatto SQLiteFactory()) – MethodMan