无法使用“PackageReference”与“MSBuild.ILMerge.Task”

7
使用通过packagereference引用的MSBuild.ILMerge.Task时,出现了以下错误:
error MSB4018: The "MSBuild.ILMerge.Task" task failed unexpectedly.
error MSB4018: System.IO.FileNotFoundException: Cannot find ILMerge 
executable.
error MSB4018:    at MSBuild.ILMerge.Task.LoadILMerge()
error MSB4018:    at MSBuild.ILMerge.Task.Execute()
error MSB4018:    at error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

这是因为MSBuild.ILMerge.Task.dll在其包位置找不到ILMerge可执行文件。我猜这主要原因可能是package.config和PackageReference之间的不同文件夹结构。
有其他人遇到过这个问题吗?提前感谢任何帮助。
2个回答

2

有用的反馈,从ILMerge 2.14.1208升级到3.X也破坏了我的MsBuild.ILMerge.Task,我已经回退了。 - Zach Mast

0

我曾经遇到过同样的问题。在我的情况下,这是由于以下原因引起的(与我的Nuget包中的一些更新有关):

  • 有时我的项目文件中有几个条件来处理Nuget包。每当我更新我的Nuget包时,这些项目文件都会被更新,并且所有的条件都会被覆盖。我通过使用Git中的差异工具发现了这个问题,然后手动添加我的条件,然后一切正常。
  • 同样地,有时我需要更新我的Nuget包(我的解决方案包括多个依赖项目,因此当我构建新版本时,我需要更新我的Nuget包)。如果我忘记在Git中提交我的更改(包括package.config和项目文件),那么相同的问题就会出现(在发布模式下)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接