自定义 MsBuild 任务因程序集加载错误而失败
Posted
技术标签:
【中文标题】自定义 MsBuild 任务因程序集加载错误而失败【英文标题】:Custom MsBuild Task fails with assembly loading errors 【发布时间】:2021-09-17 00:03:57 【问题描述】:我使用 .netcore 5.0 定义了一个自定义 MSBuild 任务,它可以访问 here。
“Application”项目在其构建过程中使用“SnykTaskFile”。
当我构建“应用程序”时,出现以下错误:
System.BadImageFormatException:无法加载文件或程序集 'System.Diagnostics.Process,版本=5.0.0.0,
如果我从“SnykTaskFile”中删除以下代码:
var processInfo = new ProcessStartInfo();
processInfo.FileName = "cmd";
processInfo.WorkingDirectory = Location;
Process.Start(processInfo);
然后再次构建“应用程序”,它构建成功,但是如果我有一个围绕“位置”的逻辑:
if (Location.Contains("...."))
return false;
它抛出另一个错误:
System.IO.FileNotFoundException:无法加载文件或程序集 'System.Runtime,版本=5.0.0.0,
【问题讨论】:
【参考方案1】:根据答案here 和 git hub 中的“自定义任务不适用于 NET5.0”的讨论,看来我应该使用 netstandard 2.0 作为任务项目类型。
【讨论】:
以上是关于自定义 MsBuild 任务因程序集加载错误而失败的主要内容,如果未能解决你的问题,请参考以下文章
TransformXml 任务通过使用单声道的 Linux 上的 msbuild 失败
使用 MSBuild 发布 VSTO 加载项会出现错误:“SignFile”任务意外失败。 System.ArgumentNullException:值不能为空
未能从程序集 C:Program Files (x86)MSBuild14.0inMicrosoft.Data.Entity.Build.Tasks.dll 加载任务“EntityClea(示例代码