Visual studio 2010 在Visual Studio 2010中,如果清理/生成成功,则重建失败

Visual studio 2010 在Visual Studio 2010中,如果清理/生成成功,则重建失败,visual-studio-2010,visual-studio,visual-c++,dependencies,project-management,Visual Studio 2010,Visual Studio,Visual C++,Dependencies,Project Management,我在一个解决方案中创建了两个项目,一个名为vm的静态库和一个名为vmx的控制台应用程序。我使用框架和引用的新方法来创建vm对vmx的依赖关系。我还向这两个项目添加了x64平台 现在,当我选择“重建解决方案”时,我得到以下输出: 1>------ Rebuild All started: Project: vm, Configuration: Debug Win32 ------ 1> vm.c 1> vm.vcxproj -> D:\Shared\Dynos\Buil

我在一个解决方案中创建了两个项目,一个名为vm的静态库和一个名为vmx的控制台应用程序。我使用框架和引用的新方法来创建vm对vmx的依赖关系。我还向这两个项目添加了x64平台

现在,当我选择“重建解决方案”时,我得到以下输出:

1>------ Rebuild All started: Project: vm, Configuration: Debug Win32 ------
1>  vm.c
1>  vm.vcxproj -> D:\Shared\Dynos\Build\Visual Studio 2010\Solutions\..\..\..\Lib\Win32\Debug\vm.lib
2>------ Rebuild All started: Project: vmx, Configuration: Debug Win32 ------
2>  main.c
2>LINK : fatal error LNK1104: cannot open file 'D:\Shared\Dynos\Lib\Win32\Debug\vm.lib'
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========
1>------ Build started: Project: vm, Configuration: Debug Win32 ------
1>  vm.c
1>  vm.vcxproj -> D:\Shared\Dynos\Build\Visual Studio 2010\Solutions\..\..\..\Lib\Win32\Debug\vm.lib
2>------ Build started: Project: vmx, Configuration: Debug Win32 ------
2>  main.c
2>  vmx.vcxproj -> D:\Shared\Dynos\Build\Visual Studio 2010\Solutions\..\..\..\Lib\Win32\Debug\vmx.exe
========== Build: 2 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
它就像vm.lib在编译vmx之前被构建之后被删除一样

如果选择Clean Solution,然后选择Build Solution,则会得到以下输出:

1>------ Rebuild All started: Project: vm, Configuration: Debug Win32 ------
1>  vm.c
1>  vm.vcxproj -> D:\Shared\Dynos\Build\Visual Studio 2010\Solutions\..\..\..\Lib\Win32\Debug\vm.lib
2>------ Rebuild All started: Project: vmx, Configuration: Debug Win32 ------
2>  main.c
2>LINK : fatal error LNK1104: cannot open file 'D:\Shared\Dynos\Lib\Win32\Debug\vm.lib'
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========
1>------ Build started: Project: vm, Configuration: Debug Win32 ------
1>  vm.c
1>  vm.vcxproj -> D:\Shared\Dynos\Build\Visual Studio 2010\Solutions\..\..\..\Lib\Win32\Debug\vm.lib
2>------ Build started: Project: vmx, Configuration: Debug Win32 ------
2>  main.c
2>  vmx.vcxproj -> D:\Shared\Dynos\Build\Visual Studio 2010\Solutions\..\..\..\Lib\Win32\Debug\vmx.exe
========== Build: 2 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
一切都好

有人能给我解释一下这里发生了什么事吗

谢谢

1)可能是一些依赖性问题

2) 重建期间可能会保留一些旧的中间文件 在清理过程中被删除&在新构建过程中被新的、正确的替换


我找到了解决我问题的办法。解决方案是不在项目设置中使用框架和引用功能,而只使用旧的项目依赖关系系统。我删除了我的引用并单击了“项目依赖项”对话框中的复选框,现在一切都正常了。奇怪


我的Huess框架和引用只适用于C++项目,对于C++类应该避免。

我最近也遇到了这个问题,经过大量的头部敲击之后,我意识到在几个项目中,<>强>输出目录是相同的<强>。因此项目A可以很好地重建,但是当项目B被“重建”时,它将清除输出目录,包括项目A的.lib和.dll文件,随后的项目重建将失败

目前,我们对自动构建的修复方法是先进行清理,然后在解决方案上进行构建,而不是进行重建或清理/重建。显然,替代方案是将项目更改为每个项目都有自己的输出目录


希望这对别人有帮助

对我来说,它是在下一个项目构建之前被清理的中间目录。这真的很让人困惑,因为我不知道到底什么会被分离到该目录中,我的解决方案和项目文件都在该目录中

如果解决方案文件*.sln和引用的项目文件*.vcxproj都在一个目录中,则将
$(TargetName)\
添加到
ProjectProperties>ConfigurationProperties>General>Intermediate directory
的值中。 这对我来说是必要的,因为我也在其他解决方案中使用该项目


我不认为这是一个依赖性问题,因为只有一个依赖性,我设置了它。只是重建失败了,但是清理/构建还可以。真奇怪。这是在新文件夹中设置的全新项目。无论是否存在64位生成配置,我都会遇到相同的问题。我删除输出文件并重建-失败,我删除输出文件并重建-工作!我不知道为什么。