ILMerge奇怪的行为

时间:2016-07-18 17:48:56

标签: .net visual-studio-2012 visual-studio-2015 ilmerge

我使用最新版本的ILMerge时遇到问题,如果有人能解释我这是否正常,我希望如此。在网上搜索期间,我意识到我没有使用最新版本的ILMerge,所以我更新了我的项目,这就是出错的地方......首先让我快速解释一下我的项目依赖性:

  • dll项目A引用并使用ILMerge。
  • dll项目B引用并使用dll A,但它不引用ILMerge。
  • 应用程序项目C引用dll B,但它不引用A 也不是ILMerge。

我的问题是:使用最新版本的ILMerge,在编译项目B或C时,文件不会复制到输出bin文件夹中。

使用ILMerge版本2.11.502.0:

  • 当我构建dll项目时,bin文件夹包含A.dll和 ILMerge.exe。
  • 当我构建dll项目B时,bin文件夹包含 B.dll,A.dll和ILMerge.exe。
  • 当我构建dll项目C bin时 文件夹包含C.dll,B.dll,A.dll和ILMerge.exe。

但是,使用ILMerge版本2.14.1208:

  • 当我构建dll项目时,bin文件夹包含A.dll和 ILMerge.exe。
  • 当我构建dll项目B时,bin文件夹包含 B.dll和A.dll。
  • 当我构建dll项目时,bin文件夹 包含C.dll,B.dll和A.dll。

当我移动使用最新版本的ILMerge时,我更新了项目A中的引用,并确保将属性Copy Local设置为true。当我恢复到旧版本时,它按预期工作,文件被复制到任何地方。

我正在使用Visual Studio 2012.微软的Mike Barnett告诉我,这种奇怪的行为也存在于VS2013中,但不存在于VS2015中。

有人遇到过类似的问题吗?

以下是一个示例:ILMergeIssue.zip

0 个答案:

没有答案