我有一个包含多个项目的解决方案,我们称之为ProjectA和ProjectB。我需要ProjectA来引用ProjectB,但是当我“导出模板”时,我似乎无法保留参考。我想要做的是让它在我创建一个新项目时为我创建参考,然后自动将其命名为我输入的内容。如何在Visual Studio中导出模板时添加相同的解决方案项目引用?
5
A
回答
1
这略微超出了纯Visual Studio模板的范围。
Visual Studio的模板支持模板替换参数,所以你可以做的是:
- 里面你
ProjectA.zip
模板文件,你会发现ProjectA.csproj
,这是该项目的模板 - 在
ProjectA.csproj
你会发现含<ItemGroup>
<Reference>
项 - 其中应该像
<Reference Include="ProjectB">
当您从ProjectB模板创建项目时,它的名称将由用户指定,因此您想用$Foo$
等替换参数替换ProjectB
。
这就是它超出纯模板范围的地方:你如何让视觉工作室替换$Foo$
?替换是什么?
您在这里唯一的选择是使用自定义向导,它可以查找ProjectB类型的项目或询问用户。
下面是如何获得的模板和自定义向导相处轮廓:
- 创建VSIX包项目。
- 一定要将
[ProvideBindingPath]
属性添加到您的包中。这是需要得到注册的自定义向导(否则你就需要把它安装到GAC,所以VS可以找到它) - 创建向导,它应该实现
Microsoft.VisualStudio.TemplateWizard.IWizard
- 模板添加到解决方案,并将其添加如在ProjectTemplate资产你的包的vsixmanifest
在模板的.vstemplate文件,添加<TemplateContent>
块下面的下面的代码片段:
<WizardExtension>
<Assembly>Your.Packages.Assembly</Assembly>
<FullClassName>Your.Wizard</FullClassName>
</WizardExtension>
那会带给你wizar d当项目创建时。在RunStarted
方法中,您可以调出一个对话框询问参考,或者您可以使用automationObject
参数(实际上是EnvDTE.DTE
实例)尝试找到ProjectB项目并在replacementsDictionary
中提供它的名称。
相关问题
- 1. Visual Studio:添加相同的项目或引用到不同的解决方案
- 2. 在项目模板向导中添加解决方案项目
- 3. 将解决方案文件夹添加到Visual Studio项目模板
- 4. Visual Studio 2010的多项目解决方案添加
- 5. 如何在Visual Studio中打开相关解决方案时打开项目?
- 6. Visual Studio解决方案和项目
- 7. 当我将项目添加到解决方案时,如何使Visual Studio自动添加引用?
- 8. 将CMake项目添加到Visual Studio解决方案
- 9. 从Visual Studio中的相同解决方案中的另一个项目访问项目时出现的问题
- 10. 添加Nuget包到多项目解决方案模板
- 11. 如何在Visual Studio 2010中创建C++项目/解决方案?
- 12. 多项目解决方案模板
- 13. 在相同的visual studio解决方案中使用\ MDd和\ MTd?
- 14. Visual Studio:在解决方案的不同项目中将服务引用添加到服务中?
- 15. 将所有项目添加到相同的解决方案?
- 16. Visual Studio Extensibility,你如何枚举解决方案中的项目?
- 17. 何时以及如何在Visual Studio项目/解决方案中使用ILMerge
- 18. 如何通过Visual Studio自动化在我的解决方案中添加对其他项目的引用
- 19. 如何从另一个解决方案加载解决方案的项目时停止visual studio 2013
- 20. VS2013:无法在同一解决方案中添加对项目的引用
- 21. 如何从Visual Studio解决方案/项目中读取文件?
- 22. Visual Studio 2010 Professional解决方案/项目与Visual Studio 2010 Premium解决方案/项目100%兼容吗?
- 23. 如何将新项目添加到Visual Studio解决方案文件?
- 24. Monodroid,WP7和WinForms在相同的Visual Studio解决方案中
- 25. Visual Studio 2008在构建解决方案时跳过项目
- 26. Visual Studio 2008在构建解决方案时跳过项目
- 27. 在Visual Studio中将现有项目添加到解决方案“只读”
- 28. 在Visual Studio中添加GitHub项目作为参考解决方案
- 29. 解决Visual Studio 2008在加载解决方案时崩溃
- 30. 将项目添加到msbuild任务中的visual studio解决方案