Visual Studio发布未将所有的DLL复制到发布文件夹

11

我有一个Web项目A,这是我的创业项目,我从这个Web项目中发布。

A指的是另一个项目->B(A具有对B的项目引用)

B包含一个引用“ref.dll

当我构建 B时,B的所有DLL,包括“ref.dll”,都被复制到A的bin文件夹中。

然而,当我发布 A时,我在发布的文件夹中看不到“ref.dll”。

我在某个地方学到,Visual Studio足够智能,如果它的任何方法没有被任何地方使用,就不会复制DLL。在我的情况下,我已经验证了“ref.dll”中的方法正在被使用。

为什么会这样?我需要在WebProject A中显式添加对“ref.dll”的引用,以便在发布文件夹中显示它吗?

1个回答

2
尝试将项目B中的dll的“复制本地”属性设置为true。

enter image description here


1
你尝试过删除bin文件夹,清理解决方案并重新构建吗? 如果那个dll不在bin文件夹中,你会得到什么错误? - Anwar Ul-haq
1
是的,我尝试删除 bin 文件夹,清理并重新构建。而且,我还尝试在新的工作区中进行相同的操作。如果没有那个 DLL,就会有一些业务逻辑失败,并且在浏览器上会抛出 DLL 缺失的错误页面。当我手动复制粘贴缺失的 DLL 时,一切都运行正常。 - Aniruddha Pondhe
4
让我惊讶的是,当我构建时,那个 DLL 被成功地复制到 bin 文件夹中,甚至在本地运行应用程序时,一切都很正常。只有当我发布时,这个 DLL 才会丢失。 - Aniruddha Pondhe
我也遇到了同样的问题,在发布后缺少dll文件,有什么解决方案吗?@AniruddhaPondhe - Aravind Goud
如果您使用NuGet来管理软件包,请尝试在csproj文件中删除项目引用。 - zhy2002
我也遇到了同样的问题。项目a引用了dll b,而dll b又引用了dll c。a和b都被发布了,但c没有。 - Matt

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