仅使用Debug build

时间:2016-10-06 02:10:49

标签: sqlite system.data.sqlite

开发人员最近将SQLite.Core NuGet包添加到我们的一个解决方案中,以作为内存数据库用于测试目的。使用Debug配置构建解决方案时,一切都很有效;但是,使用“开发”或“发布”配置时测试失败。

我发现只有在使用Debug配置构建时,x64和x86 SQLite.Interop DLL才会被复制到输出文件夹。我可以在解释此行为的配置之间找到.csproj文件中没有任何不同。

为了解决这个问题,我将以下属性组添加到.csproj文件中:

  <PropertyGroup> 
    <ContentSQLiteInteropFiles>true</ContentSQLiteInteropFiles>
    <CopySQLiteInteropFiles>false</CopySQLiteInteropFiles>
    <CleanSQLiteInteropFiles>false</CleanSQLiteInteropFiles>
    <CollectSQLiteInteropFiles>false</CollectSQLiteInteropFiles>
  </PropertyGroup>

并将DeploymentItemAttributes添加到测试类中,以便将DLL复制到测试文件夹中。

我不相信每次我们想要使用SQLite时都需要这样做。

将SQLite添加到项目中的正确方法是什么,以便它可以在没有所有这些额外步骤的情况下正常工作?

我们正在运行Visual Studio 2015,解决方案的目标是.NET 4.6.1。

1 个答案:

答案 0 :(得分:0)

我们添加了一个System.Data.SQLite.Core.targets.user文件,其中包含您在NuGet包目录中安装的System.Data.SQLite.Core.targets文件下所述的属性组。

这样,你不需要在每个项目中都这样做。

我对这种方法并不是非常热心,因为现在我们需要在版本控制系统的NuGet安装文件夹中签入一个文件,并在升级System.Data.SQLite.Core时重新考虑它。