我今天正在研究类似的设置,我发现它确实可行,但在导出模板后需要手动调整您的WebsiteProject的csproj文件。另外还有一些Bug,在ProjectReference标签下的Name标签中没有令牌替换。
Basicly你想要的csproj文件包含以下内容:
<ItemGroup>
<ProjectReference Include="..\$SolutionName$.Library\$SolutionName$.Library.csproj">
<Project>{8a8efea7-e80c-4de2-8c35-ced49a814675}</Project>
<Name>ClassLibrary</Name>
</ProjectReference>
</ItemGroup>
请注意,我并没有取代<名称>标签值,因为令牌替换不工作。幸运的是,这似乎不妨碍参考文献的工作。
编辑: 使用$ safeprojectname $将引用项目本身。如果你的类库有一个硬编码名称,这不是一个真正的问题,但在我的情况下,我想要一个像“NewProject.Library”这样的名称,我通过在我的多项目vstemplate文件中添加一个CustomParameter $ SolutionName $来解决此问题:
<CustomParameters>
<CustomParameter Name="$SolutionName$" Value="$safeprojectname$"/>
</CustomParameters>
在Multi-Project vstemplate文件中,你把'CustomParameters'块放在哪里?我添加了它,并改变了我的'.proj'使用'$ SolutionName $',但我没有得到它来替换参数,它只是留下那些确切的字符在那里。 – KyleMit 2013-10-28 21:51:31
@KyleMit在我的中找到标签作为第一个孩子。 –
IvanL
2013-10-29 09:27:54
呵呵,那就是我的位置,Visual Studio Designer给了我这个[**警告**](http://i.imgur.com/H5eGQJF.png)。虽然[MSDN文档](http://msdn.microsoft.com/en-us/library/ms247063.aspx)似乎与您一致。也许我在别的地方有个问题。 – KyleMit 2013-10-29 13:35:13