2016-05-19 5 views
0

最近、非常に基本的な.net Webプロジェクトをセットアップし、データベースにアクセスするために私のリポジトリにdapperを使用しました。私のローカルコンピュータ上でエラーなしで動作しビルドしますが、VSTSをビルドしようとすると、特定のパッケージが.NET Framework v5.4またはv5.0と互換性がないというエラーが表示されます(いくつかのフレームワークを)ビルドしようとしました。ビジュアルスタジオチームサービスの.net v5.4プロジェクトでエラーを構築するエラー。

ここには、問題のproject.jsonファイルにdapperが含まれています。これは、構築し、自分のコンピュータ上でローカルに何の問題もなく復元:

 { 
    "version": "1.0.0-*", 
    "description": "ProjectPOC.Core.Implementations Class Library", 
    "authors": [ "CBergeron" ], 
    "tags": [ "" ], 
    "projectUrl": "", 
    "licenseUrl": "", 
    "dependencies": { 
     "ProjectPOC.Core.Infrastructure": "", 
     "ProjectPOC.Core.Models": "", 
     "Microsoft.Extensions.OptionsModel": "1.0.0-rc1-final", 
     "Dapper": "1.50.0-beta9" 
    }, 
    "frameworks": { 
     "net451": { 
     "dependencies": { 

     } 
     }, 
     "dotnet5.4": { 
     "dependencies": { 
      "Microsoft.CSharp": "4.0.1-beta-23516", 
      "System.Collections": "4.0.11-beta-23516", 
      "System.Linq": "4.0.1-beta-23516", 
      "System.Runtime": "4.0.21-beta-23516", 
      "System.Threading": "4.0.11-beta-23516" 
     } 
     } 
    } 
    } 

このプロジェクトは、ビルドエージェントをホストされているVSTSの上に構築されている場合、私は一般的に、ここで使われているpreinstall.ps1スクリプトを実行している:

# bootstrap DNVM into this session. 
    "bootstrapping dnvminstall..." 
    &{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))} 
    "finished bootstrapping" 

    "Loading global.json" 
    # load up the global.json so we can find the DNX version 
    $globalJson = Get-Content -Path $PSScriptRoot\global.json -Raw -ErrorAction Ignore | ConvertFrom-Json -ErrorAction Ignore 
    "finished loading global.json" 


    if($globalJson) 
    { 

     $dnxVersion = $globalJson.sdk.version 
    "setting DNX version.. to $dnxVersion " 
    } 
    else 
    { 
     Write-Warning "Unable to locate global.json to determine using 'latest'" 
     $dnxVersion = "latest" 
    } 

    # install DNX 
    # only installs the default (x86, clr) runtime of the framework. 
    # If you need additional architectures or runtimes you should add additional calls 
    # ex: & $env:USERPROFILE\.dnx\bin\dnvm install $dnxVersion -r coreclr 
    "installing DNX" 
    & $env:USERPROFILE\.dnx\bin\dnvm install $dnxVersion -Persistent 
    #& $env:USERPROFILE\.dnx\bin\dnvm install $dnxVersion -r clr 
    #& $env:USERPROFILE\.dnx\bin\dnvm install $dnxVersion -r coreclr 
    #& $env:USERPROFILE\.dnx\bin\dnvm use $dnxVersion 
    & $env:USERPROFILE\.dnx\bin\dnvm list 
    "finished DNX install " 


    "DNU restoring....." 
    # run DNU restore on all project.json files in the src folder including 2>1 to redirect stderr to stdout for badly behaved tools 
    Get-ChildItem -Path $PSScriptRoot\src -Filter project.json -Recurse | ForEach-Object { & dnu restore $_.FullName 2>1 } 

    #dnu restore 
    "finsihed DNU restore" 

このスクリプトは私のローカルマシン上のリストに私dnvmと一致するビルドログに基づいて、次のDNX、インストールされています。それはnugetからの復元を終えた後

2016-05-19T03:45:19.1014995Z installing DNX 
    2016-05-19T03:45:19.9042850Z Downloading dnx-clr-win-x86.1.0.0-rc1-update2 from https://www.nuget.org/api/v2 
    2016-05-19T03:45:22.7176602Z Installing to C:\Users\buildguest\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update2 
    2016-05-19T03:45:22.7766619Z Adding C:\Users\buildguest\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update2\bin to process PATH 
    2016-05-19T03:45:22.8456619Z Adding C:\Users\buildguest\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update2\bin to user PATH 
    2016-05-19T03:45:22.8826599Z Native image generation (ngen) is skipped. Include -Ngen switch to turn on native image generation to improve application startup time. 
    2016-05-19T03:45:23.0276682Z Active Version   Runtime Architecture OperatingSystem Alias 
    2016-05-19T03:45:23.0346603Z ------ -------   ------- ------------ --------------- ----- 
    2016-05-19T03:45:23.0356615Z * 1.0.0-rc1-update2 clr  x86   win     
    2016-05-19T03:45:23.0586614Z finished DNX install 
    2016-05-19T03:45:23.0596622Z DNU restoring..... 
    2016-05-19T03:45:23.2796607Z Microsoft .NET Development Utility Clr-x86-1.0.0-rc1-16609 
    2016-05-19T03:45:23.4785866Z GET https://api.nuget.org/v3/index.json 
    2016-05-19T03:45:23.5821917Z OK https://api.nuget.org/v3/index.json 123ms 
    2016-05-19T03:45:23.6261910Z GET https://www.myget.org/F/aspnetvnext/api/v2/ 
    2016-05-19T03:45:24.4737562Z OK https://www.myget.org/F/aspnetvnext/api/v2/ 847ms 
    2016-05-19T03:45:24.4787560Z GET https://www.myget.org/F/aspnetmaster/ 
    2016-05-19T03:45:25.1793928Z OK https://www.myget.org/F/aspnetmaster/ 700ms 

を、そう、これはVS2015での私のローカルマシンから完璧など、紺碧にデプロイ、実行し、構築して再び

 Unable to resolve dependency System.Collections.NonGeneric 4.0.1-rc2-24027 
... 
2016-05-19T03:47:01.3562201Z ##[error]Platform\POC\ProjectPOC.Web.API\src\ProjectPOC.Core.Implementations\project.json(0,0): Error NU1002: The dependency System.Collections.NonGeneric 4.0.1-rc2-24027 in project ProjectPOC.Core.Implementations does not support framework .NETPlatform,Version=v5.4. 
2016-05-19T03:47:01.3602187Z  5>C:\a\1\s\Platform\POC\ProjectPOC.Web.API\src\ProjectPOC.Core.Implementations\project.json : error NU1002: The dependency System.Collections.NonGeneric 4.0.1-rc2-24027 in project ProjectPOC.Core.Implementations does not support framework .NETPlatform,Version=v5.4. [C:\a\1\s\Platform\POC\ProjectPOC.Web.API\src\ProjectPOC.Core.Implementations\ProjectPOC.Core.Implementations.xproj] 

:ビルド時に、それを参照することでDapperの、何とパッケージのライブラリーでは、このようなエラーがスローされます私はそれがホストされたビルドエージェントと何か関係があり、それがdnx/dnvm/nuget setupだと感じます。ビルドエージェントに追加する必要があるものか、またはすべての正しいバージョンを取得するためにdnvm/nugetにインストールする必要があるものはありますか?私もnuget.configをビルドエージェントにアップロードしましたが、それも助けになりませんでした。私は要求に応じてより多くのログを提供することができます。誰もが任意のヘルプを提供できる場合は、こので、事前に

Active Version   Runtime Architecture OperatingSystem Alias 
    ------ -------   ------- ------------ --------------- ----- 
     1.0.0-beta8  clr  x64   win 
     1.0.0-beta8  coreclr x64   win 
     1.0.0-beta8  coreclr x86   win 
     1.0.0-rc1-update1 clr  x64   win 
     1.0.0-rc1-update1 clr  x86   win 
     1.0.0-rc1-update1 coreclr x64   win 
     1.0.0-rc1-update1 coreclr x86   win 
    * 1.0.0-rc1-update2 clr  x86   win    default 

おかげか、私が会った

答えて

1

新しい.NETものとする前に同様の問題に遭遇しました:

私の地元のdnvmリストは次のようになりますこれ以前にこの問題が発生し、ローカルマシン上で動作しませんでした。そして、私はそれを "1.50.0-beta9"ではなくDapperの "1.50.0-beta8"バージョンを使って動作させます。 beta8は古い依存関係を使用し、次にbeta9を使用します。

この問題は、ここでの変更によって発生したようです:Rename "dotnet" to "NETStandard"しかし、私はそれを理解する時間がありません。

+0

ありがとうございました!最も簡単な答えが最高のものです。 "Dapper": "1.50.0-beta8"に戻ってビルドホストで作業を開始しました。なぜ私のマシン上で動作するのか説明していないが、私は何をしているのかを前進させることができる。 – CBerg

関連する問題