小编Obe*_*der的帖子

运行Visual Studio 2012单元测试框架测试后,SQLite.Interop.dll被锁定

  • Visual Studio 2012
  • SQLite 1.0.82.0(来自nuget)

我试图在"测试资源管理器"中使用"全部运行"命令在运行测试一次之后发生以下错误...之后它将不再构建,直到重新启动visual studio

这是构建错误

进程无法访问文件'SQLite.Interop.dll',因为它正被另一个进程使用

这是代码

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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过,关闭连接,调用ClearAllPools,GC.Collect,直接创建SQLiteConnection(而不是Factory)...仍然是同样的问题

如果您调试所有测试,这可以工作......但是当您运行测试时,它似乎将其锁定

c# sqlite unit-testing dispose visual-studio-2012

20
推荐指数
4
解决办法
6709
查看次数

标签 统计

c# ×1

dispose ×1

sqlite ×1

unit-testing ×1

visual-studio-2012 ×1