gpt4 book ai didi

c# - 使用 CakeBuild 构建 Xamarin.Android 项目时找不到 mscorlib

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:21:17 27 4
gpt4 key购买 nike

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

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

C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(406,2): error : Could not load assembly 'mscorlib, Version=0.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile? [C:\[myproject].csproj]

在 Visual Studio 2015 中构建作品并使用 Visual Studio 开发人员命令提示。因此,我认为它与在 VS 中和通过 VS 命令提示符设置的环境变量有关。所以我所做的是制作一个小的批处理文件:

call "%vs140comntools%vsvars32.bat"
Powershell.exe ./build.ps1 -Target Build

但我得到了完全相同的错误。在我的项目中,没有明确引用 mscorlib

Cake 构建任务如下所示:

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 Standard 还是仍在使用 PCL?详细输出是什么样的?它应该为您提供正在执行的确切 MSBuild 命令。


调用“%vs140comntools%vsvars32.bat”
Powershell.exe ./build.ps1 -Target Build -Verbosity Diagnostic

关于c# - 使用 CakeBuild 构建 Xamarin.Android 项目时找不到 mscorlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49387350/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com