Visual Studio 2010发布Web功能不包括所有DLL

我有一个ASP.NET MVC 2应用程序。

  • Web项目包含对SomeProject的引用
  • SomeProject包含对ExternalAssembly1和ExternalAssembly2的引用。
  • SomeProject显式调用ExternalAssembly1,但不是ExternalAssembly2。
  • ExternalAssembly1调用ExternalAssembly2
  • 当我执行本地构建时,一切都很酷。 所有DLL都包含在bin debug文件夹中。 问题是,当我在Visual Studio 2010中使用Publish Web命令时,它将部署除了ExternalAssembly2之外的所有内容。

    它似乎忽略不直接使用的程序集(请记住,ExternalAssembly2仅由ExternalAssembly1使用)。

    有什么办法可以告诉Visual Studio 2010包含ExternalAssembly2?

    我可以编写一个调用ExternalAssembly2的虚拟方法。 这确实奏效,但我真的不希望虚拟代码的唯一目的是导致VS2010发布该DLL。


    在我看来,这些答案都不够。 这似乎确实是一个真正的bug。 如果我找到非黑客解决方案,或者Microsoft修复此错误,我将更新此响应。

    更新:

    看起来并不乐观。 https://connect.microsoft.com/VisualStudio/feedback/details/731303/publish-web-feature-not-including-all-dlls


    我有这个相同的问题(不同的程序集虽然)。 如果我在Web项目中引用程序集,那么它们将包含在发布输出中,但无论如何它们都应该被包含,因为它们是间接依赖项:

    Web Project ---> Assembly A ---> Assembly B

    在构建上,程序集A和B输出到 bin文件夹。 在发布时,只有组件A输出到发布文件夹。

    我曾尝试更改发布设置以在Web项目中包含所有文件,但随后我的发布输出中的文件不应该部署。

    这对我来说似乎是一个错误。


    我遇到了与VS2010和WCF服务应用程序相同的问题。

    事实证明,如果您的(直接或间接)引用的DLL被部署到GAC,VS发布功能将它们排除在外。 一旦我从GAC中删除程序集,发布功能就开始按预期工作。

    我想VS假设如果您的程序集可以位于您构建的机器上的GAC中,那么它们也将位于目标机器上的GAC中。 至少在我的情况下,这个假设是错误的。

    链接地址: http://www.djcxy.com/p/14317.html

    上一篇: Visual Studio 2010 Publish Web feature not including all DLLs

    下一篇: 1 fingerprint certificate in Android Studio for debug mode?