2017-03-06 7 views
1

私はVSOに.NET Core Webプロジェクトを用意しています。このプロジェクトは、サードパーティ(Syncfusion)を参照してDOTNETはステップを復元するときは、次のエラーで失敗が起こる:VSOホステッドビルドで失敗し、3回目の参照でドットネットリストアステップが発生する

Unable to resolve 'Syncfusion.XlsIO.MVC (>= 14.2600.0.32-preview2-final)' for '.NETCoreApp,Version=v1.1'. 
Unable to resolve 'Syncfusion.Compression.MVC (>= 14.2600.0.32-preview2-final)' for '.NETCoreApp,Version=v1.1'. 

このため、ビルドは非常に基本的なビルドです。私がしたのは、デフォルトのVSビルド定義を取り、NeGetのリストアステップの後にドットネットリストアステップを追加したことだけでした。

私は、gitリポジトリのパッケージフォルダにサードパーティのものを含める必要があるという1つのことを発見しました。

Syncfusionナゲットパッケージは明らかにナゲットパッケージですが、通常のナゲットには含まれていません。ローカルでは、Syncfusion URLを指す新しいナゲットパッケージソースを追加する必要がありました。

他の質問と読書に基づいています。私は以下の変更を加えました。最初に、ここに記載されているものに基づいてビルドステップに変更しました(https://www.visualstudio.com/en-us/docs/build/apps/aspnet/ci/build-aspnet-core)。その後、コマンドラインの手順を削除し、対応する.NETコアの手順に置き換えました。これは何の違いもなく、私が現在いる場所を列挙したいだけです。

私は、プロジェクトのルートにnuget.configを追加しました:上記

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageSources> 
    <!-- remove any machine-wide sources with <clear/> --> 
    <clear /> 
    <!-- also get packages from the NuGet Gallery --> 
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> 
    <!-- add a Team Services feed --> 
    <add key="syncfusion" value="./packages/Syncfusion.Compression.MVC/14.2600.0.32-preview2-final" /> 
    <add key="syncfusion" value="./packages/Syncfusion.XlsIO.MVC/14.2600.0.32-preview2-final" /> 
    </packageSources> 
    <activePackageSource> 
    <add key="All" value="(Aggregate source)" /> 
    </activePackageSource> 
</configuration> 

2つのSyncfusionディレクトリがローカルnugetパッケージであり、Gitのレポの一部です。上記のパスが正しいかどうかわかりません(プロジェクトのルートであるnuget.configファイルからの正しい相対パスです)

まだドットネットリストアステップが実行されると、エラーを解決できません。何らかの理由で、私は唯一XlsIO 1のために今1つのエラーが発生します。私はどこにもログに圧縮1が表示されていない

最終作業答え 私が動作するようになったnuget.configファイルが

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageSources> 
    <!-- remove any machine-wide sources with <clear/> --> 
    <clear /> 
    <!-- also get packages from the NuGet Gallery --> 
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" /> 
    <!-- add a Team Services feed --> 
    <add key="syncfusionCompression" value="packages\Syncfusion.Compression.MVC\14.2600.0.32-preview2-final" /> 
    <add key="syncfusionXls" value="packages\Syncfusion.XlsIO.MVC\14.2600.0.32-preview2-final" /> 
    </packageSources> 
    <activePackageSource> 
    <add key="All" value="(Aggregate source)" /> 
    </activePackageSource> 
</configuration> 
です
+0

私はSyncFusion MVCを使用して同じ問題を抱えていました。 VSオンラインでビルドにnuget.exeが含まれているので、以下の回答は不要です。問題は、ナゲットビルドスクリプトがカスタムソースまたはデフォルトソースのいずれかを選択できることです。あなたはビルドUIから両方を持つことはできないので、それらをnuget confで組み合わせてVCにチェックインする必要があります。彼らはあなたが世界中のnuget.orgを使うことができると思います。 – murraybiscuit

答えて

0

3番目の部分参照がfrにアクセスできるNuGetサーバーにある場合OMあなたがソースを追加する手順を参照することができ、エージェントをホスティング:

  1. 編集/
  2. 最初の方法をビルド定義を作成します(ツールの前にステップ/タスクを構築するコマンドラインを追加します。Nugetツールパス、引数:sources add -name {your feed name} -source {your feed URL} -username [username] -password [password])注意を:Nuget.exeツールをソースコントロールに追加し、エージェントをビルドするためにマップする必要があります
  3. また、ソースコントロール(リポジトリ)にNuget.configファイルを含めて、このファイルを構成ファイルとして使用する場合は、--configfile [Nuget.Config path] .Net Core Restoreビルドステップ/タスク

それ以外の場合は、ソース管理(リポジトリ)にこれらの参照ファイルを含める必要があります

+0

私はそれを働かせることができませんでした。 nuget.configを作成してビルドを再試行し、追加のナゲットパスを指定しても同じエラーが発生しました。私はこのURLを見つけました(https://www.visualstudio.com/en-us/docs/build/apps/aspnet/ci/build-aspnet-core)。方法は違いがありますが、ここではSyncfusionに関する同じエラーメッセージが表示されます。 –

0

この問題は、パッケージソースに一意のキー名を付けることで解決しました。

まず、同じキー名を持つ異なるNuGetパッケージソースを「syncfusion」のように2回追加しました。したがって、XlsIO NuGetパッケージだけでエラーが表示されます。次に、キー名を "syncfusionCompression"と "SyncfsuionXls"に変更しました。だから、問題は解決されました。

NuGet.Configではキー名が一意である必要があります。

関連する問題