C# 使用CakeBuild构建Xamarin.Android项目时未找到mscorlib

C# 使用CakeBuild构建Xamarin.Android项目时未找到mscorlib,c#,android,xamarin,msbuild,cakebuild,C#,Android,Xamarin,Msbuild,Cakebuild,我正在将Xamarin Android项目集成到我们的CI管道中。我们已经在其他.NET项目中使用CakeBuild,所以我也想在这里使用它 问题是,在尝试使用Cake构建时,我总是收到以下错误消息: C:\Program Files(x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(406,2):错误:无法加载程序集 'mscorlib,版本=0.0.0.0,区域性=中性,PublicKeyToken='。也许它不存在于Mo

我正在将Xamarin Android项目集成到我们的CI管道中。我们已经在其他.NET项目中使用CakeBuild,所以我也想在这里使用它

问题是,在尝试使用Cake构建时,我总是收到以下错误消息:

C:\Program Files(x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(406,2):错误:无法加载程序集 'mscorlib,版本=0.0.0.0,区域性=中性,PublicKeyToken='。也许它不存在于Mono for Android配置文件中?[C:\[myproject].csproj]

在Visual Studio 2015中使用Visual Studio Developer命令提示符进行构建。因此,我认为它与在VS中设置的环境变量以及通过VS命令提示符设置的环境变量有关。所以我做了一个小批量文件:

call "%vs140comntools%vsvars32.bat"
Powershell.exe ./build.ps1 -Target Build
但我得到了完全相同的错误。在我的项目中,没有明确引用
mscorlib

蛋糕构建任务如下所示:

Task("Build")
.IsDependentOn("Restore-NuGet-Packages")
.Does(() =>
{
    var settings = new MSBuildSettings()
    {
        ArgumentCustomization = args =>
        {
            args = args.Append("/t:PackageForAndroid");
            args = args.Append("/p:TargetFrameworkRootPath=\"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\"");
            return args;
        },
        Verbosity = Verbosity.Normal
    };
    settings.SetConfiguration(configuration);
    MSBuild("../myproject.csproj", settings);    
});
我必须添加
TargetFrameworkRootPath
,因为如果我不显式设置它,它将找不到引用程序集


我想知道还需要做些什么来复制VS/VS命令提示符的构建环境。

您的目标是.NET标准还是仍在使用PCL? 详细输出是什么样子的?它应该为您提供正在执行的确切MSBuild命令


调用“%vs140comntools%vsvars32.bat”
Powershell.exe./build.ps1-目标生成-详细诊断