Vs2010编译两个sln的怪异有关问题

Vs2010编译两个sln的怪异问题
有两个解决方案 S1.sln和S2.sln,都包含项目 P.vcxproj
解决方案分别放在路径S1和S2,工程P放在路径P下
即:
   S1
   S2
   P
project的link参数为outdir指向$(SolutionDir)$(Configuration)\,outfile指向$(OutDir)$(TargetName)$(TargetExt)

完全编译S1,一切正常。P对应的Dll文件生成。在S1的Debug下。
完全编译S2,问题出来了,S1的编译结果被干掉了,P.dll没了。S2的Debug编译结果中有P.dll!
反之亦然!

什么情况?
本来想只在一个sln中包含这个P,build结束后执行个copy就完了。但因为存在两个solution独立工作的场景,所以还不能在build event中执行复制操作。
哪位大侠知道怎么解决,help me!

------解决方案--------------------
建立Solution的时候把Project添加进去,这些东西最好不要手动去修改。
------解决方案--------------------
如果 P 不经常变化的话, 不放到那两个 sln 中, 单独编译后把头文件和 lib 给那两个 sln 用就是了.

另外, 我们项目中遇到这种情况一般是在一个 sln 中存放 P, 提交到 svn 后, 另外一个 sln 通过设置 svn 的外键拷贝一份 P. 对两边的代码来说是完全的两份. 但是代码的修改那些通过 svn 后是同步的.
------解决方案--------------------
你这个用法比较奇怪,同一个项目vcxproj,干嘛建两个解决方案sln
一般都是同一个sln ,一个项目vcxproj,必要时若干个项目vcxproj
或者同一个sln同一个项目vcxproj,不同配置,只要配置不同就可以了。
------解决方案--------------------
有两个方法
1)每个解决方案,一份vcxproj,并且有全部源码,单独修改vcxproj 每个解决方案专用。
因为,每个解决方案都会修改vcxproj的代码,所以没有办法共用代码。

2)公共vcxproj另建一个sln;
两个sln 都不包含 公共vcxproj的任何信息,每次单独修改公共vcxproj,两个sln都只使用编译好的dll
lib 以及 一些头文件。
这是保证两个sln不会单独修改公用vcxproj,只有需要修改才修改,不是调试代码就去修改公用vcxproj的。

同时公共vcxproj应该是实现测试好的,几乎不会修改的。

PS:
那种两个解决方案公共vcxproj的办法是不可取的。
因为,你不修改代码,build ,rebuild,都不起什么作用,完全没有必要,build ,rebuild。

修改了代码,那个就不能保证,可以两个项目通用了。
所以也没有必要再公用那份代码了。

------解决方案--------------------
你试试将两个sln的输出文件名称修改一下
如果还是不行请看一下生成时是否有如下警告:
不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配

有的话把输出路径调整一致再看看
我也遇到这个问题,感觉像是VS2010的BUG