VB中的间接引用.. NET解决方案中断构建



项目A引用项目B。项目B引用项目c。项目A不引用项目c。

这在本地构建得很好。但是,在构建服务器上它出错了,因为项目A没有引用项目c。

错误:

错误BC30009:引用需要汇编'ProjectC, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'包含实现的接口'ProjectC. ifoo '。添加一个到您的项目。

我如何在提交之前捕获这个?

编辑:以下是关于我的问题的更多信息:http://sstjean.blogspot.com/2006/11/msbuild-cant-find-secondary-references.html

作为最佳实践,您可以做以下两件事,以确保您的项目被正确引用,并且MSBuild将能够正确找到您引用的项目。

  1. 使用项目引用而不是引用dll。创建一个名为dependencies或libs的文件夹,并将所有引用的dll放在该文件夹中。

  2. 右键单击项目并选择项目构建顺序,检查每个项目的构建顺序和项目依赖项。

  3. 确保项目中的每个引用都是由该项目构建的。
MSBuild不知道.sln文件是什么。MSBuild读取并解析.sln文件以确定项目的构建顺序。有了项目引用,MSBuild将能够以正确的顺序遍历和构建项目。更多信息请看下面的链接。

这个链接也有助于解释为什么你会看到不同的行为以及如何捕获它。

Visual Studio Integration (MSBuild)

在Visual Studio中,解决方案文件和项目构建顺序由Visual Studio本身控制。在命令行上使用MSBuild .exe构建解决方案时,MSBuild解析解决方案文件并命令项目构建。在这两种情况下,项目都是按照依赖顺序单独构建的,并且项目到项目的引用不会被遍历。相反,当使用msbuild.exe构建单个项目时,将遍历项目到项目的引用。

当在VisualStudio内构建时,属性$(BuildingInsideVisualStudio)被设置为true。这可以在您的项目或.targets文件中使用,以使构建的行为不同。

转到您的项目参考,右键单击Oracle.DataAccess,然后转到属性,在属性页面确保特定版本为假,复制到本地设置为真

相关内容

  • 没有找到相关文章

最新更新