C#과 C ++/CLI 프로젝트를 모두 포함하는 Visual Studio 2008 템플릿?
-
06-07-2019 - |
문제
현재 C# (기본적으로 Winamp API/SDK의 C# 구현 및 BareBones 플러그인 템플릿의 C# 구현)을위한 WinAMP 플러그인 프레임 워크를 작성하고 있습니다. C# 라이브러리는 DLL 엔트리 포인트를 내보낼 수 없으므로 기본적으로 C# 라이브러리를로드하는 C ++/CLI 래퍼를 사용하고 있습니다. 이를 위해 Visual Studio 템플릿을 만들고 싶습니다. 둘 다 베어 본 C# 플러그인 라이브러리, 그리고 C ++ 래퍼. 그러나 파일 → 내보내기 템플릿을 클릭하면 C# 프로젝트 만 나열됩니다.
C# 프로젝트와 C ++/CLI 프로젝트를 모두 포함하는 다중 프로젝트 템플릿을 만들 수 있습니까? 그렇다면 어떻게?
해결책
나는 얼마 전에 답을 찾았고 이것을 올바르게 업데이트하는 것을 잊었다. .vstemplate 파일은 C# 템플릿에서와 같이 언어를 CSHARP로 설정하여 C ++ 템플릿을 만드는 데 사용될 수 있습니다 (여전히 올바르게 작동합니다).
다음은 내가 사용한 예입니다. .VSTEMPLATE 파일 그리고 다른 모든 파일
다른 팁
'내보내기 템플릿'은 C ++ 프로젝트에서는 작동하지 않습니다. 템플릿을 원한다면 직접 템플릿을 만들어야합니다. 내 대답을 참조하십시오. 여기. 일부 작업이 포함되지만 이런 종류의 프로젝트를 많이 사용하면 작업이 적절한 시간입니다.
편집하다
나는 내 코드를 찾아 보았다. 이런 일이 당신이 시작해야한다. Default.js의 Onfinish 메소드는 기본 마법사에서 'OK'를 클릭 한 후 호출됩니다. 나는 이것을 테스트하지 않았다!
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 );
}