我有2个解决方案(可以说Master Framework M和Slave Project S)。 M用于许多S类解决方案。 在我的构建过程中,我建立所有的M的DLL和S. 然后用它们工作时,我想更快的周期,我可以很容易地修改M和立即使用S.VS 2010解决方案取决于另一个解决方案
的问题,因为你可能知道都与您在csproj文件中引用库或项目的方式有关。
如果您想链接你如果想(甚至从其他解决方案)链接了一个项目,做这样的事情
<Reference>
<HintPath>..\lib\$(Platform)\$(Configuration)\M.Example.dll</HintPath>
</Reference>
你必须这样做,这样一个DLL
<ProjectReference Include="..\path to project in other solution\M.Example.csproj">
<Project>{2009D1C4-E18F-6CF8-8AA4-B53A1B2F1009}</Project>
<Name>M.Example</Name>
</ProjectReference>
这是直接写在C#项目(csproj)文件!所以你不能在同一个文件中为不同目的使用项目或DLL
我不想维护2个csproj文件,一个引用构建过程的所有DLL,另一个引用用于开发& CI目的的项目。
我有两个主要思路是: 1)留在M 2个不同的解决方案和工作,然后建立和S中只参考DLL和使用自定义输入项目(仅在研究与开发工作)的DLL中生产出副本因此S的lib目录中的M可以使用它们,而不必在S根外部或引用其他项目。
2)使用条件这样
<Reference Condition='$(BUILDING)!=""'>
<HintPath>..\lib\$(Platform)\$(Configuration)\M.Example.dll</HintPath>
</Reference>
<ProjectReference Condition='$(BUILDING)==""' Include="..\path to project in other solution\M.Example.csproj">
<Project>{2009D1C4-E18F-6CF8-8AA4-B53A1B2F1009}</Project>
<Name>M.Example</Name>
</ProjectReference>
凡建筑仅被定义在正式构建过程。
我想使这更容易,也许更聪明
M解决方案中有多少个项目? – Reniuz 2012-03-15 08:57:22
解决方案依赖于解决方案意味着什么?通常,解决方案S中的一些项目取决于解决方案M中的一些项目。这是您的意思吗?如果是这样,您可以简单地将这些项目添加到* both *解决方案中。 – jalf 2012-03-15 09:12:18