首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Visual Studio生成成功,MSBuild失败

Visual Studio生成成功,MSBuild失败
EN

Stack Overflow用户
提问于 2014-06-28 02:12:26
回答 9查看 14K关注 0票数 19

我正在尝试使用MSBUILD从命令行清理和重建包含多个项目的解决方案文件。由于某些原因,我的构建失败了(大约10%的构建项目失败),并且我得到了多个错误,它们看起来都是这样的:

错误栏:类型或命名空间名称'foo‘在命名空间’CS0234‘中不存在(是否缺少程序集引用?)

现在,如果我使用完全相同的配置从Visual Studio2010中清理并重新构建相同的解决方案文件,它将成功构建而不会出现错误。

与Visual Studio相比,MSBuild的设置或配置中是否有我不知道的需要更改的差异?

EN

回答 9

Stack Overflow用户

发布于 2015-09-01 21:40:33

我不得不处理这个问题,事实证明,msbuild喜欢将构建的二进制文件移动到binaries\release目录中,并在构建时引用这些文件,而不是项目本身。在构建之后,将文件复制到此目录。这就解释了为什么它可以在visual studio而不是msbuild中工作(我目前使用的是TFS1010)。

在我的例子中,我有一个旧的二进制版本的dll被一个项目引用,该项目是在应该生成正确文件的项目之后构建的。旧的(二进制)覆盖了新的(从源代码构建的),因为引用二进制的解决方案是在稍后的构建中构建的。

票数 3
EN

Stack Overflow用户

发布于 2016-05-12 00:33:32

我假设项目的构建方式有所不同,因为Visual Studio并不运行MSBuild,而是托管构建引擎本身。这是here回答的问题。

然而,我也遇到过类似的问题。

在我的例子中,项目引用了一个外部库,它被放在项目的子目录中,不幸的是命名为"packages“。

在运行MSBuild之后,文件夹的内容被删除,理应由Nuget再次下载。

显而易见的解决方案是重命名文件夹,它起作用了。

票数 2
EN

Stack Overflow用户

发布于 2014-06-30 17:42:05

尝试检查MSBuild在非构建库的项目文件中找不到的引用的路径。有时,当您使用VS或ReSharper自动为您添加引用时,路径最终指向\obj目录。VS似乎能够应对这一点,但MSBuild并非如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24458379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档