我刚刚将一个VS2010项目升级到了VS2012,现在我遇到的问题是依赖项目没有按需构建 . 例如,假设我的解决方案中有以下项目:
-
图书馆A.
-
ConsoleApp 1
ConsoleApp 1引用库A的位置 . 如果我在库A中的类中更改方法的签名并运行ConsoleApp 1,则由于ConsoleApp 1没有看到我的更改而导致编译器错误,因为运行ConsoleApp 1不会导致库A Build .
如果我手动构建库A,然后手动构建ConsoleApp 1,它可以正常工作 . 但是,我希望运行ConsoleApp 1会导致在启动之前重建任何依赖项目 .
我可以配置错误吗?或者这是VS2012中的错误?
8 回答
尝试删除项目
references
并再次添加它们(路径如下:References ->
(右键单击)Add reference -> Solution -> Project
) . 在再试一次之前Save All
. 这就是我解决它的方式 .您的症状与those I experienced a while ago非常相似 . 确保将项目设置为使用
Build->Configuration Manager
下的当前active
解决方案configuration
和活动解决方案平台进行构建 .当解决方案的.suo文件被锁定且Visual Studio无法再写入时,会发生这种情况 . 此问题的另一个症状是,当您打开它时,您将看到在解决方案旁边创建临时suo文件 . 尝试关闭Visual Studio并删除工作区中的所有* .suo文件 . 然后重新打开Visual Studio并重建所有 . 无需手动重建您的解决方案 . 这将解决问题,因为它是由锁定的.suo引起的,正如我今天的一位同事所发生的那样 .
在他的情况下,原因似乎是他在Visual Studio仍处于打开状态时关闭了他的笔记本电脑 . 也许关闭Windows并没有完全干净?我们只能推测.suo最初是如何被锁定的 .
我尝试了上面的所有解决方案,并没有解决我的问题 . 我发现这是因为
ConfigurationManager
中的Active configuration
设置为仅构建Main(启动)项目 .转到
Build
>ConfigurationManager
确保检查要构建的所有项目,如下面的屏幕截图所示 . 这是Asp.Net论坛here上的类似问题,这是MSDN的详细信息 . 虽然它已经通过了,bcoz我从来没有改变过这些设置并且上周工作正常
我遇到了类似的问题,解决方案(或者是probelem)是
Tools > Options... > Projects and Solutions > Build and Run
下的Build and Run
设置,其中"Only build startup projects and dependencies on Run"已被选中 . 截图显示了我目前正在使用的解决方对我来说,我通过右键点击项目来解决问题;构建依赖项>项目依赖项 . 然后手动设置每个项目的顺序 . 如果你有很多项目,那将非常痛苦 .
在解决方案资源管理器中右键单击解决方案,然后单
确保引用项目具有与引用项目相同或更高的.Net框架版本 .