2010-08-08 15 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包含在模板中。

相關問題