(エンジンの代わりに) Microsoft.Build.Evaluation を使用してプログラムで csproj ファイルを変更します。

私は実際に答えを見つけました。うまくいけば、他の人を助けるでしょう:

新しい Project(...) を作成してそれを .Load(...) しようとする代わりに、ProjectCollection クラスのファクトリ メソッドを使用する必要があります。

// Instead of:
// var project = new Project(collection);
// project.FullPath = "myproject.csproj"; // Instead of load? Does nothing...

// use this:
var project = collection.LoadProject("myproject.csproj")