Visual Studio 2008模板,包含C#和C++/CLI项目?

Visual Studio 2008模板,包含C#和C++/CLI项目?,c#,visual-studio,c++-cli,C#,Visual Studio,C++ Cli,我目前正在为C#编写一个Winamp插件框架(基本上是Winamp API/SDK的C#实现,以及一个基本插件模板)。因为C#库不能导出DLL入口点,所以我使用的是C++/CLI包装器,它基本上只加载C#库。我想为这个创建一个VisualStudio模板,它创建了强> > b> b>插件库,和 C++包装器。但是,如果我单击“文件”→ 导出模板,仅列出C#项目 是否可以创建同时包含C#项目和C++/CLI项目的多项目模板?如果是,那么如何?< p>导出模板对C++项目不起作用。如果您想要为它们创

我目前正在为C#编写一个Winamp插件框架(基本上是Winamp API/SDK的C#实现,以及一个基本插件模板)。因为C#库不能导出DLL入口点,所以我使用的是C++/CLI包装器,它基本上只加载C#库。我想为这个创建一个VisualStudio模板,它创建了<>强> > b> b>插件库,<强>和<强> C++包装器。但是,如果我单击“文件”→ 导出模板,仅列出C#项目


是否可以创建同时包含C#项目和C++/CLI项目的多项目模板?如果是,那么如何?

< p>导出模板对C++项目不起作用。如果您想要为它们创建模板,您需要自己创建:请参阅我的答案。这涉及到一些工作,但是如果你经常使用这类项目,那么这项工作是值得花时间的

编辑

我查了一下我的代码,像这样的东西应该可以让你开始;在默认向导中单击“确定”后,将调用default.js中的onFinish方法。注意,我没有测试这个

function onFinish( selProj, selObj )
{
  var strProjectPath = wizard.FindSymbol('PROJECT_PATH');
  var prjCpp;
  var prjCs;
  CreateProjects( strProjectPath, prjCpp, prjCs );
  //project config here
  prjCpp.Object.Save();
  prjCs.Object.Save();
  selProj = prjCpp;
}

function CreateProjects( path, prjCpp, prjCs )
{
  var strProjTemplatePath = wizard.FindSymbol('ABSOLUTE_PATH'); //get template from our template dir
  var strProjTemplateCpp = strProjTemplatePath + '\\default.vcproj';
  var strProjTemplateCs = strProjTemplatePath + '\\default.csproj';
  var Solution = dte.Solution;

  if( wizard.FindSymbol( "CLOSE_SOLUTION" ) )
  {
    Solution.Close();
    strSolutionName = wizard.FindSymbol( "VS_SOLUTION_NAME" );
    if( strSolutionName.length )
    {
      var strSolutionPath = strProjectPath.substr( 0, strProjectPath.length - strProjectName.length );
      Solution.Create(strSolutionPath, strSolutionName);
    }
  }

  var oTarget = wizard.FindSymbol( "TARGET" );
  prjCpp = oTarget.AddFromTemplate( strProjTemplateCpp, strProjectPath, strProjectName + '.vcproj' );
  prjCs = oTarget.AddFromTemplate( strProjTemplateCs, strProjectPath, strProjectName + '.csproj' );
  Solution.Projects.Add( prjCpp );
  Solution.Projects.Add( prjCs );
}

不久前我自己找到了答案,但忘了正确更新这个。VSTEMPLAL文件可以用来创建C++模板,如C语言模板中的语言一样,它仍然可以正常工作。 下面是我用过的一个例子:和


嗯,我明白了。这些可以与C#模板捆绑在一起吗?我希望在同一个解决方案中同时创建一个C项目和一个C++项目。我自己没有尝试过,但是它是绝对可能的:因为创建解决方案、项目、修改它的内容等都在JS脚本中发生,创建一个项目而不是一个解决方案并不难。谢谢:)我似乎无法让任何代码正常工作。我通过新项目-> VisualC++ + >自定义向导创建了一个新向导,将代码粘贴到Debug .js中,打开VisualStudio的新实例,并尝试在新实例中使用向导。即使是像警报(“Hello World”)这样简单的东西在OnFinish中也不起作用,所以我认为我做错了什么。我将阅读更多文档并尝试解决这个问题。谢谢你的帮助:HM,看起来像是可以用一个“.vSTEMPLAL”文件来制作一个C++模板,这与我们之前的想法不同。看起来WiX正在使用它:。嗯,可能需要试试这个+1,谢谢,这个技术似乎是创建C++模板的更简单的方法。