kazuk は null に触れてしまった
C# / .NET 系技術ネタ縛りでお送りしております
Multi Project な Project Template を作成する
2011/03/25
投稿者: : 元ネタは
How to: Create Multi-Project Templates
http://msdn.microsoft.com/en-us/library/ms185308.aspx
なんだけど、一回作ってる最中にうまくビルドできなくなったので、メモとりながら「やってみる」という blog
要 Visual Studio SDK です。
プロジェクトテンプレートのプロジェクトを作成。ソリューションエクスプローラー上での構造があうように作る。
<?xml version="1.0" encoding="utf-8"?> <VSTemplate Version="3.0.0" Type="ProjectGroup" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005"> <TemplateData> <Name>LibWithUnitTest</Name> <Description><No description available></Description> <Icon>LibWithUnitTest.ico</Icon> <ProjectType>CSharp</ProjectType> <RequiredFrameworkVersion>2.0</RequiredFrameworkVersion> <SortOrder>1000</SortOrder> <TemplateID>526730eb-c930-4614-8398-64a21c9f008a</TemplateID> <CreateNewFolder>true</CreateNewFolder> <DefaultName>LibWithUnitTest</DefaultName> <ProvideDefaultName>true</ProvideDefaultName> </TemplateData> <TemplateContent> <ProjectCollection> <ProjectTemplateLink ProjectName="Implementation"> ClassLibrary\ClassLibrary.vstemplate </ProjectTemplateLink> <ProjectTemplateLink ProjectName="UnitTest"> UnitTest\UnitTest.vstemplate </ProjectTemplateLink> </ProjectCollection> </TemplateContent> </VSTemplate>
あれ、ビルドできた。(ぉぃ
んでプロジェクトの追加したら普通にできた。(ぉぃ
企画倒れ!
…となぜ最初のは失敗したのかなと。 .cs のファイルプロパティで、ビルドアクションは「なし」にしてないと駄目。子プロジェクト側 vstemplate のビルドアクションは「なし」にした方が良いみたい。(VSTemplate ビルドアクションになってるとその分 Project Template の zipが吐かれますね)って事で、ファイルプロパティの設定間違ってるだけでした。
っていう感じですね。
ってここまで書いてからこんなの見つけちゃった。
Multi-Project Templates with Wizard: Visual Studio 2010 Sample
http://vsix.codeplex.com/
プロジェクト作成時の Wizard まで実装してるね!コッチでも子プロジェクトの vstemplateのビルドアクションは無しになってますね。
http://vsix.codeplex.com/SourceControl/changeset/view/61761#1354286
<ItemGroup> <None Include="Children\Windows Library\ProjectTemplate.vstemplate" /> </ItemGroup>
ほら、無し(None)でしょ。