私は珍しいスタックでいくつかの実験を行っています。私はの.NET標準,コアと通常の.NET Frameworkプロジェクトの混合である.NETソリューションを持っています。 VS、フレームワーク、ツーリングの両方が最新のものに更新されています。Linuxの.NET標準
私はUbuntuの上ドッカランナーでgitlabのCIを使用したいと思います。
私は、コア/ネット標準ライブラリ(xprojs)を導入する前に、私は
MONO_IOMAP=case xbuild /t:Build /p:Configuration="Release" /p:Platform="Any CPU" ./src/CoreLibrary/CoreLibrary.sln
を実行することで、私のソリューションを構築することができましたが、それ以来、私はインポートすることができませんでした
を得続けるが"$(VSToolsPath)\ DotNet \ Microsoft.DotNet.Props"
私のすべてのxprojのエラー。私はdotnet restore
とdotnet build
でxprojsをビルドすることができますが、残りはxbuildでのみビルドできます。今では、エラーを避けるために、Linux上にxbuild以外のものを別々にビルドできるようにするための2つのソリューションがあります。これは私ができる最高のものですか?誰かが私にこれを正しく行う方法のヒントを教えてもらえますか?
のは、私は、ソリューション内の2つのプロジェクトを持っているとしましょう、物事を単純化するために
更新:.NETコアライブラリプロジェクトは、ターゲティングnetstandard1.4(xproj)と同じ古い.NETコンソールアプリケーションターゲティング.NET Framework 4.6.1(csproj)。コンソールアプリケーションは、netstandardライブラリに依存しています。
Visual Studioから、問題なくソリューションを構築できました。両方のプロジェクトが正しく構築されています。私のWindowsマシンからは、dotnet utility tool
を使ってxprojsをビルド/実行することもできます。すべて正常に動作します。
私のubuntuベースのコンテナでは、モノはソリューションをビルドすることができません。上記のエラーが表示されます(そこにはVSがインストールされていません)。私は最初に正しく動作するdotnet utility tool
を使用してxprojを構築し、xprojsを含まない別のソリューションファイルを持ち、コンソールアプリケーションのみを構築してxbuildでビルドすることができます。
私の主な関心事は(これは便利な解決策ではないという事実より)VSのバグが修正されて、現時点ではcscrojsの参照をプロジェクト参照として追加することが不可能になる場合です。私のcsprojプロジェクトは分離する必要があるので、それを使用することはできません。
xbuildを必要とする「残りの部分」とは何ですか? .NET Coreは、ほとんどの場合、自己を含み、Monoを含まない。 –
@LexLi私は、多くの異なるプロジェクトタイプからなるソリューションのためにCIを取得したい場合に、単に実験しています。私は質問を更新しました。御時間ありがとうございます。 – kataik
マイクロソフトでは、スコープをLinuxの.NET Coreに明確に限定しています。スコープをMonoに展開すると、.NET Coreまたは.NET Frameworkとは無関係になります。誰もがMonoが.NET Frameworkの代わりではないことを知っています。あなたのような問題は、修正するのが容易ではなく、誰が修正するのか明確ではないため、容易ではありません。より小さな実験範囲を設定し、あなた自身の時間とエネルギーを節約することをお勧めします。 –