VS2005:程序集“<assembly>”被错误地指定为文件。

59

我已将log4net程序集dll的引用添加到我的项目中。

当我构建时,我收到一个警告:

警告:程序集 'Lib\log4net.dll' 被错误地指定为文件。

我查看了MSDN上关于此错误的帮助文档,它说:

应用程序清单生成期间生成此警告,当构建过程检测到文件引用实际上是(托管或本地的)程序集时。

这正是我正在做的事情;文件引用就是一个程序集。这里告诉我的是什么?

我如何在不添加程序集dll的引用的情况下添加对程序集dll的引用?


你能否在你的.csproj文件中发布Log4Net dll的<Reference>部分? - Millhouse
2个回答

109

尝试将源DLL的“生成操作”属性设置为“无”。这对我们解决了问题。


2
我们在WinForms项目的根目录下有我们的log4net.dll。我按照您的建议将Build Action设置为“None”。然后,我将该文件添加为引用,并成功地使用ClickOnce构建和发布了该项目。 - proudgeekdad
9
对于那些不知道从哪里开始的人——右键点击dll文件——属性——从“生成操作”菜单中选择“无”。 - usefulBee
2
这会导致错误消失,但在部署应用程序时会引入一个完全不同的问题 - 具有“无”构建操作的文件将不会与项目的其余部分一起部署... - dub stylee
@dubstylee 你需要将“复制到输出目录”设置为“仅在较新时复制”或“始终复制”。 - dstnrgrs

7

我自己也遇到了这个问题。

以下是解决方法:

我将一个程序集添加为引用和“现有资源”。从解决方案资源管理器中删除该文件,关闭并重新打开项目即可解决问题。


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