2016-05-06 25 views
4

我已經使用Sqlite構建了UWP應用程序。在我的本地機器上,我必須安裝以下的SQLite for Universal Windows Platform Visual Studio Extension才能構建它。當我在UWP上使用sqlite時,我遵循this blog使用託管TFS池構建UWP應用程序時找不到SDK SQLite.UWP.2015

我現在試圖實現與Visual Studio Team Services的持續集成(即Team Foundation Server Online)。

我使用的是託管庫來構建我的應用程序,但我得到以下信息:

C:\ Program Files文件 (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets (2049,5): 錯誤MSB3774:無法找到SDK「SQLite.UWP.2015,版本= 3.12.2」。

它打破了構建。

我該如何解決這個託管池?我沒有對機器的物理訪問,因爲這是由TFS在線

編輯管理:

發現這之後是安裝在我的本地計算機上的庫(通過在Visual Studio擴展)等不存在於我的主機上,意味着引用被破壞我正在嘗試將各個文件添加到源代碼管理,並直接從源代碼管理中引用它。但是我不知道它實際上是在引用什麼,因爲它沒有說。是參考的性能如下:

enter image description here

+0

因此,我發現通過安裝擴展並引用它,它在C:\ Program Files文件(x86)\ Microsoft SDKs \ UAP \ v0.8.0.0 \ ExtensionSDKs \ SQLite.UWP.2015中被引用,它是顯然不在主機上。我不知道它正在尋找哪個dll,以及如何將它作爲項目的一部分 – user1

回答

0

沒有任何辦法安裝上託管生成代理擴展。

問:您的構建是否依賴於此軟件安裝在託管構建資源上的軟件 ?

答:不可以。然後您可以使用託管池。

以下是安裝在Hosted Build Agent上的軟件:Software on the hosted build server

解決方法是deploy your own build agent。通過這個構建代理,您可以安裝您想要構建項目的軟件。

+0

我最終部署了自己的構建代理,因爲它提供了更多的控制權,並且可以將擴展安裝到我自己的構建代理上 – user1

+0

我們正在尋找在構建期間允許管理員功能,因爲您在租用的時間段內擁有該機器。 – bryanmac

+1

託管機器上的UWP仍然沒有Sqlite ..來吧微軟,把你的手指拉出來! – user1

0

你不能在託管VSTS安裝額外的擴展。我嘗試了TS支持,現在沒有辦法做到這一點。

您可以像使用Appveyor一樣使用差異CI服務,讓您通過PowerShell控制安裝擴展。

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

3

其實有一個簡單的解決方案,完美地爲我們工作:

複製微軟的SDK文件夾到您的回購協議(或子模塊)。

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

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

從現在開始構建過程中會首先檢查該目錄所需的擴展,然後退回到本地安裝的擴展。這適用於VSTS託管代理,並且不需要您在每臺開發機器上安裝所有擴展。

+1

當然你只需要複製你正在使用的擴展和版本,但它們必須具有相同的文件夾結構,比如UAP \ v0.8.0.0 \ ExtensionSDKs \ ... –

+0

謝謝:這個技巧省了很多時間! –

相關問題