【问题标题】:SQLite.WP81 extension SDK installs on VS2013 U2 but unable to reference assembly in WP 8.1 projectSQLite.WP81 扩展 SDK 安装在 VS2013 U2 上,但无法在 WP 8.1 项目中引用程序集
【发布时间】:2015-06-08 13:44:00
【问题描述】:

在 Visual Studio 2013 Update 2 上安装 SQLite.WP81 扩展 SDK 后,Windows Phone 程序集的 SQLite 不会出现在 Windows Phone 8.1 选项卡的扩展列表中。

SQLite for Windows Phone 8.1 download page in the Visual Studio Gallery 上有一个讨论,另一个开发人员似乎也有同样的问题。另一位开发人员建议手动安装扩展,但这并没有什么不同。 (而且这个建议似乎很可疑,因为这个扩展现在安装在 C:\Program Files (x86)\Microsoft SDKs\WindowsPhoneApp\v8.1\ExtensionSDKs\SQLite.WP81\3.8.6 下)

该扩展似乎未能将自己注册为 Visual Studio 的扩展 SDK。

有人知道如何解决这个问题吗?

编辑:事情进展了一点

我将 SQLite.WP81 文件夹从 C:\Program Files (x86)\Microsoft SDKs\WindowsPhoneApp\v8.1\ExtensionSDKs\SQLite.WP81\ 移动到 C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.1\ExtensionSDKs\SQLite.WP81\,更新了\SQLite.WP81\3.8.6\extension.vsixmanifest 和\SQLite.WP81\3.8.6\DesignTime\CommonConfiguration\neutral\SQLite 中的路径.WP81.props 文件以反映新位置和包出现。

这既奇怪又伟大。手动破解 SDK 似乎很奇怪。但这是进步。

现在,问题是 SQLite.WP81 需要一些名为 Microsoft.VCLibs 的 SDK,但它没有出现在资源管理器中。到目前为止,搜索网络一直没有结果。

有人知道在哪里可以找到 Microsoft.VCLibs 吗?

【问题讨论】:

    标签: sqlite visual-studio-2013 windows-phone-8.1


    【解决方案1】:

    VS2013 U3 和我的项目之间有问题。出于某种原因,在将此项目升级到 Windows Phone Silverlight 8.1 后,VS2013 U3 将不会显示任何适用于 Windows Phone 8.1 的扩展 SDK。

    我使用 XML 编辑器添加了对项目 .csproj 文件的以下引用。

      <ItemGroup>
        <SDKReference Include="SQLite.WP81, Version=3.8.6">
          <Name>SQLite for Windows Phone 8.1</Name>
        </SDKReference>
      </ItemGroup>
      <ItemGroup>
        <SDKReference Include="Microsoft.VCLibs, Version=12.0">
          <Name>Microsoft Visual C++ 2013 Runtime Package for Windows Phone</Name>
        </SDKReference>
      </ItemGroup>
    

    阻止我的项目工作的另一个问题是我在项目之间使用了不同的 sqlite.winmd 文件。该应用程序将构建和部署,但在运行时应用程序会崩溃。调试日志中的一些消息说 SQLite 未注册。 (抱歉,没有写下实际消息。)通过我所有的项目,对 sqlite.winmd 进行相同的引用,最终让应用程序在 WP8.1 上运行。

    希望这可以防止其他人浪费几天时间。

    【讨论】:

      【解决方案2】:

      尝试进入您的驱动器并使用搜索栏查找正确的扩展名 .dll 获取结果的最新日期并查看是否有效。

      【讨论】:

      • 我试过了。有趣的是,VS2013不会将dll添加到项目中。相反,它会抱怨一个对话框,说明:无法将对更高版本或不兼容程序集的引用添加到项目中。
      • 你应该有一个最新版本的。也许尝试删除您引用的第一个,然后搜索并添加。我必须做同样的事情。
      • 不确定你的意思。该项目目前不包含对 SQLite 程序集的引用。我直接从 Add References 浏览到 C:\Program Files (x86)\Microsoft SDKs\WindowsPhoneApp\v8.1\ExtensionSDKs\SQLite.WP81\3.8.6\Redist\Retail\ARM\sqlite3.dll 文件但 VS2013 抱怨: 无法将对更高版本或不兼容程序集的引用添加到项目中。
      • 没有。我已经知道那个有趣的功能了。进行参考时,配置设置为零售 ARM。好问题。
      • 谢谢希望对您有所帮助。我花了一些时间处理同样的问题。
      【解决方案3】:

      好的,这就是我设法做的(但我仍然无法编译)

      我安装了可以在我的 WP 8.1 项目中引用的 WP 8.0 版本的 sqlite。我卸载了项目,打开了 csproj 文件,我在其中将 WP8.0 引用更改为 WP8.1。之后我得到了正确的 sdk,但 VS 抱怨 Microsoft.VCLibs。我能够通过再次手动编辑 csproj 并添加这个 sn-p 来解决这个问题:

        <ItemGroup>
          <SDKReference Include="Microsoft.VCLibs, Version=12.0">
            <Name>VCLibs</Name>
          </SDKReference>
        </ItemGroup>
      

      就在类似的 sqlite sn-p 所在的下方。此后 VS 不再抱怨 VCLibs。但是当尝试使用 sqlite-net 包装器时,它无法识别 Sqlite 命名空间,我猜这是一个不好的迹象。

      【讨论】:

      • 我终于设法让我的项目升级到 WP8.1。 VS2013 U3 中似乎出现了一些问题,导致我们无法看到 8.1 SDK 包。手动编辑 .csproj 文件似乎是唯一的方法,除非您想开始一个新项目并复制所有内容。我将更新我最初的问题,以展示最终对我有用的方法。
      猜你喜欢
      • 1970-01-01
      • 2013-06-14
      • 2016-03-03
      • 2014-10-08
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多