【问题标题】:Supress/Disable/Solve Visual Studio Build Warning抑制/禁用/解决 Visual Studio 构建警告
【发布时间】:2016-12-23 22:45:55
【问题描述】:

我将 clickonce 用于 Windows 窗体应用程序。我必须部署一些资源程序集。这些程序集位于我项目的一个文件夹中(不作为参考)。它们被标记为 BuildAction = content 和 CopyToOutputDir = Copy If Newer。使用此配置,我收到警告 MSB3178: Assembly '' is incorrectly specified as a file.

当我将 BuildAction 设置为 none 时,警告会消失,但必须部署的程序集不会出现在 ClickOnce 应用程序文件中。

我想在 clickonce 的发布中添加这些程序集(有很多),而不出现此警告,并且不将这些 dll 作为项目中的引用添加。我进行了很多研究,但找不到禁用警告的解决方案。

编辑:

只有当我在“项目/属性/安全选项卡”中设置“启用 Clickonce 安全设置”=“True”时才会出现警告

示例项目:

Click to download the sample project

只需构建并检查警告。

【问题讨论】:

  • 不要将BuildAction 设置为content,而是尝试将其保留在none 并将CopyToOutputDir 更改为CopyAlways
  • 嗨@ThorstenDittmar!我做到了,但是程序集没有出现在 Click Once Application Files (Project/Properties/Publish Tab) 中:/
  • 我编辑了我的问题,请检查。
  • 您是否有特殊原因不想将其设置为参考?
  • 正如杰里米已经说过的那样,这是不可能的。如果您面临的真正问题是无法找到其他错误/警告,您可以使用第三方工具将结果从错误列表导出到 excel 或 pdf,您可以轻松过滤结果。其中之一是visualstudiogallery.msdn.microsoft.com/… - 看看它是否适合你。

标签: c# winforms deployment clickonce


【解决方案1】:

抑制 MSBuild 警告仍然不可能。

带有 MSB 前缀的警告由 MSBuild 引发。目前,我们无法抑制 MSBuild 警告。

参考:https://social.msdn.microsoft.com/Forums/vstudio/en-US/96b3ea2e-92ed-4483-bbfe-a4dda3231eb9/suppress-msb4126?forum=tfsbuild

您可以在 .csproj 文件的 PropertyGroup 中隐藏一些内容,例如:

但是,不正确地指定为文件警告不存在。


由于第 3 方 DLL 的文件扩展名,您无法修复 MSB3178 的根本原因,因此您有理由忽略该特定警告。

相关的 SO 线程 herehere 以及 MSDNMSDN 上的完全相同的问题。

【讨论】:

  • 您好 Jeremy Thompson,感谢您的回答。在这里发布问题之前,我研究了您发布的这些链接。我真的认为有可能以某种方式抑制这些警告。真正的问题是我有 140 条关于同一问题的警告。当一个重要的警告出现时,他是数百人中的一员。不能抑制这个警告太不方便了。
  • 我知道,这真的很不幸,我希望我的研究能找到解决方案,但我也有同样的理解。你甚至不能通过内省来做到这一点!根据我最后的第二个“赏金答案”,另一个想法是 VS AddIn。虽然即使这样,这个请求也需要一个黑魔法的答案......很抱歉在这里重复你自己的研究
  • 非常感谢您对@Jeremy Thompson 的关注。有一种非常常见的情况,这是不可能没有预见到的。想象一下,我正在使用我的代码 (dllimport) 中的非托管程序集并且必须发布它。没有这个警告怎么办?好奇...
猜你喜欢
  • 1970-01-01
  • 2017-04-11
  • 2010-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多