プロジェクトテンプレートを使用してソリューションフォルダを追加することはできますか?機能が組み込まれていない場合は、このためのカスタムタスクを作成できますか?ビジュアルスタジオプロジェクトテンプレートにソリューションフォルダを追加
2
A
答えて
1
これを確認するには、msdnのウェブサイトをチェックすることができます。 またはtotal overviewの場合
2
これは少し複雑です。これを単純なプロジェクトテンプレートで行うことはできません。プロジェクトテンプレートは単一のプロジェクトレベルでしか動作できませんでした。より高度なロジックを実装するには、WizardExtensionを実装し、それをテンプレートの.vstemplate
ファイル内に登録する必要があります。
<WizardExtension>
<Assembly>AssemblyInGACWithSomeLogic</Assembly>
<FullClassName>MySuperWizardExtension</FullClassName>
</WizardExtension>
詳細については、MSDNを参照してください。
-3
私は私のプロジェクトテンプレートウィザードでは、次のスニペットを使用しています(マイクChaliyの回答を参照してください):_solution = (Solution2) _dte.Solution;
0
あなたは、テンプレートウィザードを使用してそれを行うことができます
private static SolutionFolder GetSolutionFolder(Solution2 solution) {
var project = GetSolutionFolderProject(solution);
return (SolutionFolder) project.Object;
}
private static Project GetSolutionFolderProject(Solution2 solution) {
var project =
solution.Projects.Cast<Project>().FirstOrDefault(p => p.Name == "Solution Items");
if (project == null) project = solution.AddSolutionFolder("Solution Items");
return project;
}
。私はあなたがすでにそれを実装する方法を知っていると思います。
ので、RunFinishedメソッド内で、これらの行書き込み:あなたはEnvDTE80.dllを参照する必要が対処方法2クラスの場合
var destFolder = Directory.GetParent(path).Parent;
System.IO.Directory.CreateDirectory(destFolder.FullName + "\\.nuget");
((Solution2) _dte.Solution).AddSolutionFolder(destFolder.FullName + "\\.nuget");
を。 _dteは、RunStartedメソッドから設定する必要があります。
private DTE _dte;
public void RunStarted(object automationObject, Dictionary<string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams)
{
_dte = (DTE)automationObject;
}
関連する問題
- 1. VS 2008のソリューションフォルダを追加しますか?
- 2. ソリューションフォルダにファイルを追加するにはどうすればよいですか?
- 3. C#を使用してソリューションフォルダからSQL Serverデータベースに追加する
- 4. ソリューションフォルダ内のローカルファイルの問題
- 5. ソリューションフォルダ(ない物理フォルダ)
- 6. ASP.NET内のMVCソリューションフォルダを再配置
- 7. ビジュアルスタジオのソリューションフォルダからプロジェクトテンプレートを作成
- 8. TFS 2010のソリューションフォルダ名を取得
- 9. 他のソリューションフォルダからのファイルへのアクセス
- 10. Visual Studioソリューションフォルダに参照されたDLLを保存する
- 11. ソリューションフォルダの代わりにプロジェクトをリストするVisual Studioマクロ
- 12. UITableViewスワイプに追加ボタンを追加
- 13. タプルC#7に追加プロパティを追加
- 14. 「追加ボタン」を追加するには?
- 15. スカラ追加クラスをクラスに追加
- 16. WHERE文に追加チェックを追加
- 17. Logrusがコンテキストログに追加フィールドを追加
- 18. Shipyardに追加のドッカーノードを追加
- 19. cメイクファイルに追加のソースディレクトリを追加
- 20. 追加のテストスイートをGradleに追加
- 21. jquery uiオートコンプリートリストに追加リンクを追加
- 22. rocksolidアイコンピッカーに追加のアイコンを追加
- 23. ドロップダウンリストに追加ラベルを追加
- 24. javafxボタンに追加のアクションを追加
- 25. ActiveModelシリアライザに追加フィールドを追加
- 26. MySQLテーブルにテーブルを追加する追加のカラムを追加しました
- 27. VS2008はソリューションフォルダのアセンブリへのGAC参照を優先します
- 28. UIScrollViewにUIButtonを追加し、UIScrollViewをUIViewに追加します。
- 29. Cloudant/CouchDBにドキュメントを追加する際にタイムスタンプを追加
- 30. Springマルチテナント:ユーザー追加時にMultiTenantConnectionProviderにデータソースを動的に追加
あなたの完全なIWizard実装を投稿してもよろしいですか?私はどこでGetSolutionFolderメソッドを呼び出すべきか分かりません。 – Marcus
public void RunStarted(オブジェクトアプリケーション、Dictionary replaceacementsDictionary、WizardRunKind runKind、object [] customParams){ \t \t \t _dte = application as _DTE; \t \t \t _solution =(Solution2)_dte.Solution; \t \t \t _solutionFolder = GetSolutionFolder(_solution); \t \t} –
ulu