Как я понимаю ваше описание, у вас есть две проблемы:
- Ссылка на проект из проекта A на проект B прерывается, когда создаются проекты
- Ссылка наdll не работает, когда создается проект
У меня также есть проблемы с 1), и я еще не нашел способ это решить.
Для 2) вы должныубедитесь, что dll, на который вы ссылаетесь, является частью самого проекта и содержится в содержимом проекта в файле метаданных vstemplate.
См., например, мой шаблон для F # и XNA: в файле .fsproj (аналогично .csproj для проекта C #):
<ItemGroup>
<Reference Include="FSharp.Core">
<HintPath>Dependencies\FSharp.Core.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<None Include="Dependencies\FSharp.Core.dll"/>
<None Include="Dependencies\FSharp.Core.xml"/>
<None Include="Dependencies\FSharp.Core.sigdata"/>
<None Include="Dependencies\FSharp.Core.optdata"/>
</ItemGroup>
В файле .vstemplate:
<Folder Name="Dependencies" TargetFolderName="Dependencies">
<ProjectItem ReplaceParameters="false" TargetFileName="FSharp.Core.dll">FSharp.Core.dll</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="FSharp.Core.xml">FSharp.Core.xml</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="FSharp.Core.optdata">FSharp.Core.optdata</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="FSharp.Core.sigdata">FSharp.Core.sigdata</ProjectItem>
</Folder>
См. также Шаблон проекта Visual Studio и ссылки на частные сборки для альтернативного решения, если вы не хотите включать dll в шаблон.