別のC#プロジェクトを使用してasp.netコアプロジェクトを構築したいと思います。ここにサンプルコードがあります。 (私はVisual Studio 2015を使用しています)コードからMSBuildを使用してasp.netコアプロジェクトを構築することは可能ですか?
var projectCollection = new Microsoft.Build.Evaluation.ProjectCollection(Microsoft.Build.Evaluation.ToolsetDefinitionLocations.Registry);
projectCollection.DefaultToolsVersion = "14.0";
projectCollection.RegisterLogger(new Microsoft.Build.Logging.ConsoleLogger(Microsoft.Build.Framework.LoggerVerbosity.Detailed));
var project = projectCollection.LoadProject(@"H:\Development\WebApplication22\src\WebApplication22\WebApplication22.xproj");
bool b = project.Build();
これは私に多くのエラーを与えます。以下はその1つです。
"GetTransitiveNonDotNetProjectDependencies" タスクは、アセンブリCから をロードできませんでした。過去ログ\ Microsoft.DotNet.Tasks.dll \ \プログラムファイル (x86の)\ MSBuildの\マイクロソフト\ VisualStudioを\ v14.0。タイプ メソッド 'get_BuildEngine' 'Microsoft.DotNet.Tasks.KProcess' アセンブリから 'Microsoft.DotNet.Tasks、バージョン= 14.0.0.0、 ニュートラル文化=、なPublicKeyToken = b03f5f7f11d50a3aは' 実装を持っていません。宣言が正しいことを確認し、 アセンブリとすべての依存関係が利用可能であり、 タスクに Microsoft.Build.Framework.ITaskを実装するパブリッククラスが含まれていることを確認します。完了したビルドターゲット "WebApplication22。xproj"プロジェクトの "_GetDependencyFragmentFiles" - FAILED。
注:Visual Studioのコマンドプロンプトを使用してMSbuildを使用している場合、正常に動作します。
は便利なこのリンクかもしれませ - https://docs.microsoft.com/en-us/dotnet/articles/core/tutorials/target-dotnetcore-with-msbuild – Sanket
私はあなたのコードでテストを行って、それが同じエラーを再現する。 MSBuildコマンドをプログラムで呼び出してプロジェクトをビルドすることをお勧めします。一方、あなたはこのツールコードを参照することができます:https://github.com/dotnet/buildtools –