2017-07-24 149 views
3

我在幾個問題上看到過這個問題,當您在本地構建時,所有解決方案都可以正常工作。我目前在visualstudio.com上有我的代碼,每當我從我的機器上推送代碼時,我都會自動構建。在Visual Studio在線上找不到Microsoft.SqlServer.Types的版本10或更高版本

我知道你有安裝NuGet包(我有),並從以下鏈接安裝類型:

http://go.microsoft.com/fwlink/?LinkID=239644&clcid=0x409

的問題是,我不知道如何安裝,從我的瀏覽器,因爲它正在雲端建設。

我錯過了什麼嗎?

回答

0

我在微軟的支持下解決了這個問題。

這是很簡單其實,我已經添加下面的代碼行到Context對象的構造函數:

SqlProviderServices.SqlServerTypesAssemblyName = "Microsoft.SqlServer.Types, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"; 

這來自一個計算器的答案,但我已經失去了聯繫。如果有人知道這是從哪裏來的,請隨時評論鏈接,或標記爲重複。

0

Visual Studio Onlines TFS Build Server不允許你在其上安裝任何東西。你必須用NuGet包來做。

將SQL CLR Types依賴項作爲NuGet包添加到您的解決方案。

enter image description here

這種方式構建服務器將在構建之前恢復NuGet包:

enter image description here

如果不行嘗試Microsoft.SqlServer.Types.Unoffical包。

如果我不認爲你應該提出這個問題作爲微軟的支持案例。

+0

非官方的包沒有任何工作。我已經提交了微軟的門票,謝謝 – RandomStranger

0

我發現這是內部部署TFS和VSTS的問題。

一般來說,像這樣在VS:

Folder tree of visual studio

即使它在本地創建的bin目錄中的文件夾它不會在構建服務器。

要做的第一件事是確保.dll文件被設置爲內容幷包含在源代碼管理中(它們通常被默認排除)。這應該意味着他們把它放到輸出目錄中。由於32位和64位dll具有相同的名稱,因此無法依賴哪個版本將其轉換爲實際的bin文件夾,因此必須保持相同的文件夾結構。

一旦檢查了構建輸出目錄,就可以用正確的相對路徑調用SqlServerTypes.Utilities.LoadNativeAssemblies()

在一個實例中,我在一個不是已發佈項目(一個數據訪問項目)的項目中引用它們,唯一能讓它工作的方式是將NuGet包添加到頂級已發佈的Web項目中。

0

我發現在網絡上並沒有爲我工作了所有的竅門後,我希望做的文件,它爲我工作的解決方案:我安裝了NuGet包和創建以下重定向應用程序/網絡

。配置:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
    <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" /> 
    </dependentAssembly> 
</assemblyBinding>  

我發現neccessary的相關信息在這裏: https://github.com/aspnet/EntityFramework6/issues/244

相關問題