C# 使用CakeBuild构建Xamarin.Android项目时未找到mscorlib
我正在将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命令提示符设置的环境变量有关。所以我做了一个小批量文件: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
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-目标生成-详细诊断