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