SQLite的。修复sqlite-net-wp8项目依赖项

时间:2013-09-24 18:28:29

标签: c# windows-8 windows-phone-8 sqlite nuget

为什么Nuite上没有SQLite?为什么它是Visual Studio的一部分,您必须在Tools->扩展和更新中查找更新?我在过去的几个月里开始编写Windows 8和Windows Phone 8的编码,我希望能够对此有所了解。

对我来说,在Windows 8项目中使用SQLite会创建一个VS级依赖项。

假设我使用Visual Studio IDE引用的SQLite版本开发客户端库(例如:3.7.x),并将库分发给另一个使用他/她的Visual Studio IDE引用的SQLite 3.8.x的开发人员,我的客户端库仍然有用吗?

上周发生在我身上的是:

我使用SQLite为Windows Phone 8开发了一个客户端库,我不得不使用Peter Huene编写的名为sqlite-net-wp8的第三方包装器。

可从以下网址获取:https://github.com/peterhuene/sqlite-net-wp8/

当您查看此项目的Sqlite.vcxproj文件(https://github.com/peterhuene/sqlite-net-wp8/blob/master/Sqlite.vcxproj)时,它会引用给定版本的SQLite。看起来每次在Visual Studio上更新SQLite时,都必须更新.vcxproj文件。

类似的东西:

<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(MSBuildProgramFiles32)\Microsoft SDKs\Windows Phone\v8.0\ExtensionSDKs\SQLite.WP80\**3.8.0.2**\DesignTime\CommonConfiguration\Neutral\SQLite.WP80.props" />
  </ImportGroup>

假设我使用3.8.0.2开发客户端库并将其交给使用相同方法与SQLite(使用sqlite-net-wp8)进行Windows Phone 8应用程序通信的应用程序开发人员,并且他/她使用不同的SQLite的版本(比如说3.7.x甚至是更新的版本3.9.x),我的客户端库仍然有效吗?我相信他/她的sqlite-net-wp8可能指的是不同版本的SQLite,而不是我的客户端库,打破了代码。

当我将SQLite 3.7.x更新为3.8.x时,它强制我更新Sqlite.vcxproj以找到3.7并替换为3.8,这不是很好的用户体验。

我认为理想情况下它也应该向后兼容3.7.x。但它没有。

如果Nuite上有SQLite和sqlite-net-wp8,我可以通知想要使用我的客户端库的开发人员我使用的SQLite版本和sqlite-net-wp8。

是否有任何克服问题的想法,并且有更好的开发人员处理问题的经验?

1 个答案:

答案 0 :(得分:1)

我认为SQLite在nuget上不可用的原因是它是一个本机包,所以要使用的dll需要依赖于目标组装平台nuget don't seem to support yet

关于为项目更新sqlite的版本,你不需要手动更新vcxproj,只需使用“Add Reference”删除并读取对Sqlite的引用(它将显示在windows下的Add Reference窗口中 - &gt;安装扩展程序后的扩展程序)