2016-11-18 17 views
2

ランナー(this scriptのわずかな変更で構成されたランナー)がASP.NET COREプロジェクト、JSレスWebフロントエンド、およびユニットテストプロジェクト。 MSBuildのは、一つ一つの依存関係がすべてのプロジェクトでエラーNU1001で(150のエラーメッセージの上に)失敗したプロジェクトをビルドしようとしたがgitlab CIランナーMSbuildですべてのC#依存関係が失敗する

、。

これは、VS 2012は、このマシンにインストールされていないにもかかわらず、ビルドするためにVisual Studioの2012を使用しようとしたbehavior-いくつかの非常に奇妙なことに加えています。また、元のスクリプトから%project_name引数を受け入れることも拒否します。ビルド段階にさえも、場所とバージョンをハードコードする必要がありました。

元のスクリプトのナゲットが破損していたので削除されました。後で、ナゲットがビルド時にパッケージを自動的にリフレッシュすることを示す文書が見つかりましたので、再追加す​​る必要はありません。

答えて

0

私はこれがgitlab-ciの問題ではないと思います。使用しているランナーに関連付けられているサーバー(またはコンテナ内)にMSBuildコマンドを実行することに、デバッグ作業を集中させます。

before_scriptを使用して、がパイプラインで必要とされる依存関係を確認するスクリプトを呼び出すことをお勧めします。たとえば、ビルド前のスクリプトは、MSBuild、NuGet、およびGitがランナー/ VM /コンテナのパス上にあることを確認できます(パイプライン内で管理するのではなく、PuppetまたはPowershell DSCを使用してこれらの前提条件を制御できます)。

nuget restoreは、before_scriptではなくrestoreステージの一部として呼び出す必要があります。復元されたパッケージは、ステージ間でアーティファクトとして渡すことができます。

あなたは、二重引用符あなたbuildジョブ内のMSBuildのあなたの呼び出しです。ここで私は私が現在働いているパイプラインでのMSBuildを呼び出しています方法は次のとおりです。

このシナリオでは

build_dev: stage: build script: - MSBuild $env:TARGETS /t:Build /p:Configuration=Debug artifacts: paths: - ./*/bin <<: *default_expiration <<: *default_tags

、私before_scriptMSBuildがパス上にあるので、私はそれを使用して自由だということを確認しました。ランナーに応じて、MSBuild 12.0または14.0を参照することがあります。 $env:TARGETSはgitlab-ci変数からのものです。 MSBuildファイルbuild.targetsを指しています。

私はあなたが基本的なshell executorを使用していると考えています。あなたのランナー設定でshell = powershellを指定するといくつかのことがより簡単になりますが、Powershellの構文は、パイプラインをつなぎ合わせる際のフラットアウトに優れています。

最後に、MSBuildのは、自動的にNuGetの依存関係を復元するかどうか本当にあなたの.csprojファイルが書き込まれる方法次第です。私は別のステップとしてnuget restoreを持つことが最善であると主張します。たとえば、MSBuild自体で使用されているNugetパッケージを復元する必要がある場合は、別の手順が必要になります。

は、単にあなたのソリューションファイルに対してMSBuildのを実行すると、自動的にコマンドラインでMSBuildのを自分で実行することにより、NuGetパッケージを復元することを確認します。私はgitlab-ciがそのコマンドの成功に影響を与えるとは思わない。

+0

私はこの質問を投稿して以来、新しいノートパソコンを使用しているので、ほとんどのCI /ランナーステップをやり直さなければなりませんでした。 これらのスクリプトがどのように動作するのかわかりません。cmdでMSbuildを実行しようとしましたが、ソリューションのフォルダーやMSbuildフォルダーでは実行されません。私はMSbuildが実際にスクリプトの上に現れていることを確認しました。 私はymlとあなたの提案を乱し、CIでymlエラーが発生しました。 私はどこから始めるか/修正するか分からない。 – Kir

関連する問題