VS 2010多项目模板:项目间参考

时间:2012-03-29 13:18:28

标签: visual-studio-2010 templates

我目前正在开发一个多项目模板。我正在使用此处记录的方法:How to: Create Multi-Project Templates。此模板将具有一个主网站模板(以MVC 3 temaplte为模型)和一些其他调用库模板,以保持功能分离。

示例: WebsiteProject1 位于模板项目的一个文件夹中,其所有文件和.vstemplate都位于该文件夹下。 ClassLibrary1 位于模板项目中的另一个文件夹下,并且还有自己的.vstemplate文件。

我的问题是,如何在WebsiteProject1中为ClassLibrary1设置引用,以便在从模板创建项目时,引用存在并解决?这甚至可能吗?

1 个答案:

答案 0 :(得分:6)

我今天正在进行类似的设置,我发现它确实可行,但它需要在导出模板后手动调整您的WebsiteProject的csproj文件。还有一些错误,在ProjectReference标签下的Name标签中没有令牌替换。

基本上,您希望csproj文件包含以下内容:

<ItemGroup>
    <ProjectReference Include="..\$SolutionName$.Library\$SolutionName$.Library.csproj">
        <Project>{8a8efea7-e80c-4de2-8c35-ced49a814675}</Project>
        <Name>ClassLibrary</Name>
    </ProjectReference>
</ItemGroup>

请注意,我没有替换&lt; Name&gt;标记值,因为令牌替换不起作用。幸运的是,这似乎并不妨碍参考的工作。

修改: 使用$ safeprojectname $将引用项目本身。如果您的类库有一个硬编码名称,这不是一个真正的问题,但在我的情况下,我想要一个像“NewProject.Library”这样的名称我通过在我的Multi Project vstemplate文件中添加一个CustomParameter $ SolutionName $来解决这个问题:

<CustomParameters>
  <CustomParameter Name="$SolutionName$" Value="$safeprojectname$"/>
</CustomParameters>