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

Posted

技术标签:

【中文标题】Visual Studio 发布未将所有 DLL 复制到发布文件夹【英文标题】:Visual Studio Publish Not Copying All DLLs to Publish Folder 【发布时间】:2016-04-19 09:39:52 【问题描述】:

我有一个 Web 项目 A,这是我的启动项目,我从这个 Web 项目发布。

A 引用另一个项目 -> B(A 有项目引用 B)

B 包含一个引用“ref.dll

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

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

我在某处了解到,Visual Studio 足够智能,即使它的任何方法都没有在任何地方使用,它也不会复制 DLL。就我而言,我已验证正在使用“ref.dll”中的方法。

为什么会这样?我是否需要在 WebProject A 中明确添加对“ref.dll”的引用,以便它出现在发布文件夹中?

【问题讨论】:

【参考方案1】:

尝试为项目 B 中的 dll 设置 Copy Local = true。

【讨论】:

您是否尝试过删除 bin 文件夹,清理解决方案并再次重建。?如果该 dll 不在 bin 文件夹中,您会遇到什么错误? 是的,我尝试删除 bin 文件夹,清理和重建。另外,在新的工作区中尝试了同样的方法。如果没有那个 DLL,就会有一些业务逻辑失败,并且在浏览器上它会向我抛出错误页面,说 DLL 丢失。当我手动复制粘贴丢失的 DLL 时,一切正常。 令我惊讶的是,当我构建时,该 DLL 已成功复制到 bin 文件夹中,甚至当我在本地运行应用程序时,一切都很好。只有当我发布时,DLL 才会丢失。 在发布此@AniruddhaPondhe 的任何解决方案后,我也面临同样的问题 dll 丢失 如果您使用nuget管理包,请尝试删除csproj文件中的item ref。

以上是关于Visual Studio 发布未将所有 DLL 复制到发布文件夹的主要内容,如果未能解决你的问题,请参考以下文章

visual studio 未将对象引用设置到对象的实例

Debug.WriteLine 未将输出写入 Visual Studio 2010 中的 OutputWindows

Visual Studio 2019 未将引用的项目添加到 deps.json

Visual Studio clean 解决方案不会删除所有被移动的 dll / 项目引用

Visual Studio 2010 版本找不到 dll

使 Visual Studio 不关心 DLL 版本