2010-08-08 40 views
2

我有3个项目的解决方案,我在两个项目之间引用了所有3个项目中的项目的.dll引用。该项目在Silverlight中。 我想制作一个多项目模板,当我从该模板创建一个新项目时,参考不再起作用。它修改名称空间和项目名称,但引用不会更新。而.dll中的引用在使用模板创建的新项目中不起作用。在Visual Studio 2010中制作模板时如何保持两个项目之间的引用

该项目在Silverlight和C#4.0中。

谢谢。

回答

0

我明白你的描述的方式,你有两个问题:

  1. 从项目中的项目引用项目B断当项目被实例化
  2. 到DLL的引用被打破时,项目实例化

我也有1)的问题,并没有找到一种方法来解决这个问题。

对于2)你必须确保你所引用的dll是项目本身的一部分,并在你的vstemplate元数据文件中的项目内容中列出。

例如,见我的F#和XNA模板: 在.fsproj文件(类似于一个C#项目的.csproj):

<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 Project Template and Private Assembly Referencing以获取替代解决方案,如果您不想将dll包含在模板中。

相关问题