我明白你的描述的方式,你有兩個問題:
- 從項目中的項目引用項目B斷當項目被實例化
- 到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包含在模板中。
來源
2010-12-26 12:35:26
Joh