我明白你的描述的方式,你有两个问题:
- 从项目中的项目引用项目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