我正在将一个Xamarin Android项目集成到我们的CI管道中。我们已经在其他CakeBuild项目中使用了.NET,所以我也想在这里使用它。
问题是,在尝试使用Cake构建时,总是会收到以下错误消息:
C:\Program (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(406,2):错误:无法加载程序集'mscorlib,Version=0.0.0.0,Culture=neutral,PublicKeyToken=‘。也许它不存在于配置文件中?C:[myproject.csproj]
在Visual 2015中构建工作,并使用Visual命令提示符。因此,我认为这与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命令提示符的构建环境。
发布于 2018-03-29 18:23:05
您的目标是.NET标准,还是这仍然使用PCL?详细的输出是什么样子的?它应该给出正在执行的确切的MSBuild命令。
call "%vs140comntools%vsvars32.bat" Powershell.exe ./build.ps1 -Target Build -Verbosity Diagnostic
https://stackoverflow.com/questions/49387350
复制相似问题