dotnet sdk 1.1とVisualにアップグレードした後、コマンドラインからテストするのに問題がある平均以上の複雑な(疑わしい)スタジオ2017.VS 2017は.Netコアを含む混合ソリューションをどのように構築してテストするのですか
これは、VS2015で動作していましたが、dotnet sdk 1.0.0-preview2-003131でビルドされ、VS 2015とbuildserverのコマンドラインの両方でビルドされて実行されます。
しかし、私は、セットアップの概要を説明するにはVS 2017に
をアップグレードした後、いくつかの問題が発生しました。 私は(現実の生活の中でより多くのプロジェクト)
MySolution.sln
- FoundationClasses(x86の、.NET Frameworkの4.5、csproj(レガシー)
- ビジネスロジック(x86のを大まかに以下のようにレイアウトされたソリューションを持っています、.NET Frameworkの4.5、csproj(legcay)
- 参照・ファウンデーション・クラス
- WEBAPI(DOTNET C鉱石WEBAPI、net451、x86の(ランタイム(win8-x86の、win10-x86の)
- TestProject(DOTNETコア、net451、x86の)
- 参照は、これがあったVS 2015年
をWEBAPI restore.dgとproject.fragment.lock.jsonをGitに保存して作業を行いました。その後、dotnet restoreを実行し、その後にdotnet buildとdotnet testを実行することができました。
VS 2017にアップグレードした後は、Visual Studioからビルドして実行するとすべて正常に動作します。 (マイグレーションは、基礎プロジェクトへの参照にいくつかの問題を抱えていましたが、それらを削除して、移行後に読み込み、すべて正常でした)。
'dotnet restore mySolution.sln'は問題ありません。これはWebApiとTestProjectのパッケージを正しくプレビュービットに反して正しく復元します。私は復元ファイルとフラグメントファイルを手伝っていました。
しかし、「dotnet build MySolution.sln -f net452 -r win10-x86」を実行すると、ビルドエラーが発生します。
「dotnet msbuild MySolution.sln -f net452 -r win10-x86」を実行すると動作します。
これは、アウトラインのようなソリューションでCLIツールから構築する正しい方法ですか?
ビルドとリストアでは、CLIとVS 2017の両方で動作させることができます。同じ結果が得られます。
しかし、テストのために、整合性が停止します。
Visual Studioのテストエクスプローラでテストを実行できます。 Unittestsは正常に動作し、緑色です。しかし、Microsoft.Extensions.DependencyInjection.Abstractions 1.0.0と1.1.0の参照の不一致で、TestServerの起動が失敗する統合テストが行われました。
したがって、テストチェーンの中にはアセンブリの1.0.0が必要ですが、1.1のみです。デバッグディレクトリに0があります。
これはアセンブリのリダイレクトによって解決できますが、かなりの数のアセンブリが間違っているかミスマッチしているようです。
私が 'dotnet test --no-build TestProject/TestProject.csproj'を実行すると、テストはすべて緑色で問題はありません。
だから、優れた質問:
- 混合溶液を構築するための正しい方法 'DOTNETのMSBuildの' か?
- 私はそれがコンパイルに失敗し--no-構築せずに「DOTNETテスト」を実行した場合 - 私のテストに基づいて矛盾は何ですか
- (MSBuildのではない)「DOTNETのビルド」のようなエラーで - どのように私は実行することができますVSと同じで、VSと同じです(VS2017で1.0.0の範囲でアセンブリが必要なものが望ましい)。
私は完全に説明することができたが
シナリオを理解するために詳細が必要な場合は、私にお知らせください。
よろしく アンダース