【问题标题】:Could not find SDK SQLite.UWP.2015 when building UWP application using Hosted TFS pool使用托管 TFS 池构建 UWP 应用程序时找不到 SDK SQLite.UWP.2015
【发布时间】:2018-05-02 02:46:40
【问题描述】:

我已经使用 Sqlite 构建了一个 UWP 应用程序。在我的本地机器上,我必须安装以下 SQLite for Universal Windows Platform Visual Studio Extension 才能构建它。我在 UWP 上使用 sqlite 时关注了this blog

我现在正在尝试实现与 Visual Studio Team Services(以前是 Team Foundation Server Online)的持续集成。

我正在使用托管池来构建我的应用程序,但我收到以下消息:

C:\程序文件 (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(2049,5): 错误 MSB3774:找不到 SDK“SQLite.UWP.2015,版本=3.12.2”。

它会破坏构建。

如何在托管池中解决此问题?我没有对机器的物理访问权限,因为这是由 TFS 在线管理的

编辑:

发现这是一个安装在我的本地计算机上的库(通过 Visual Studio 扩展),因此在我的托管计算机上不存在意味着引用已损坏,我正在尝试将相应的文件添加到源代码管理并引用它直接从源代码控制。但我不知道它实际上引用的是什么 dll,因为它没有说。引用的属性如下:

【问题讨论】:

  • 所以我发现通过安装扩展并引用它,它在C:\Program Files (x86)\Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UWP.2015 中被引用,这显然不在主机上。我不知道它正在寻找哪个 dll 以及如何将其作为项目的一部分来获取

标签: tfs win-universal-app azure-devops tfsbuild sqlite-net


【解决方案1】:

实际上有一个简单的解决方案对我们来说非常有效:

将 Microsoft SDKs 文件夹复制到您的存储库(或子模块)。

将此添加到您的 csproj 文件的末尾:

<PropertyGroup>
  <SDKReferenceDirectoryRoot>$(MSBuildProjectDirectory)\..\..\..\..\Microsoft SDKs;$(SDKReferenceDirectoryRoot)</SDKReferenceDirectoryRoot>
</PropertyGroup>

从现在开始,构建过程将首先检查此目录是否有所需的扩展,然后回退到本地安装的扩展。这在 VSTS 托管代理上完美运行,并且不需要您在每台开发机器上安装所有扩展。

【讨论】:

  • 当然你只需要复制你正在使用的扩展和版本,但它们必须具有相同的文件夹结构,如 UAP\v0.8.0.0\ExtensionSDKs\...
  • 谢谢:这个技巧节省了很多时间!
【解决方案2】:

没有任何方法可以在 Hosted Build Agent 上安装扩展。

问:您的构建是否依赖于该软件以外的其他软件? 安装在托管的构建资源上?

A:不。那么您可以使用托管池。

这是安装在 Hosted Build Agent 上的软件:Software on the hosted build server

解决方法是deploy your own build agent。使用此构建代理,您可以安装要构建项目的软件。

【讨论】:

  • 我最终部署了自己的构建代理,因为它给了我更多的控制权,我可以在自己的构建代理上安装扩展
  • 我们正在考虑在构建期间允许管理功能,因为您在租用的时间段内拥有机器。
  • 在主机上仍然没有用于 UWP 的 Sqlite.. 来吧微软,伸出你的手指!
【解决方案3】:

您不能在托管 VSTS 中安装额外的扩展。我尝试了 TS 支持,但现在无法做到。

您可以使用 Appveyor 等差异化 CI 服务,让您可以控制通过 powershell 安装扩展。

或者你可以等Windows 10 Anniversary with include Sqlite.

【讨论】:

    【解决方案4】:
    • here 下载 SQLite for Universal Windows Platform SDK
    • 双击安装。

    这解决了我的 UWP 项目的相同问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-02
      • 1970-01-01
      • 1970-01-01
      • 2017-11-06
      • 2013-08-22
      • 2016-08-20
      • 2017-04-22
      相关资源
      最近更新 更多