2013-11-28 3 views
3

코드로 새 프로젝트를 만들고 프로젝트에 일부 DLL 참조를 추가하려고합니다.VSX의 프로젝트에 DLL 라이브러리 참조 추가

여기에 내 코드

System.Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.9.0"); 
object obj = System.Activator.CreateInstance(type, true); 
EnvDTE.DTE dte = (EnvDTE.DTE)obj; 
Solution2 sln = (Solution2)dte.Solution; 
sln.Create(@"C:\tmp", "TestSolution"); 
string templatePath = sln.GetProjectTemplate("WindowsApplication.zip", "CSharp"); 
sln.AddFromTemplate(templatePath, @"C:\tmp\Project", "TestProject", false); 
Project proj = sln.Projects.Item(1); 
VSProject2 vsproj = (VSProject2)proj.Object; 
vsproj.References.Add(@"C:\testfile.dll"); 
vsproj.Refresh(); 
sln.SaveAs("TestSolution"); 

입니다하지만 프로젝트를 열고 "참조"에서 볼 때 Testfile.dll이 추가 된이 없습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

당신이 save project 필요 보인다 :

proj.Save();

솔루션을 저장하기 전에.

나는 msvs2010으로 시도 했으므로 확실하지는 않습니다. msvs2008 동일합니다.

+0

안녕하세요! 감사! 프로젝트에서 참조를 제거 할 수 있는지 알고 있습니까? – Mathias

+0

@Mathias ['Reference'에는'Remove' 메소드가 있습니다.] (http://msdn.microsoft.com/en-us/library/vslangproj.reference.remove (v = vs.90) .aspx) –

+0

@Mathias Has has 도움이 되었습니까? –

0

이 시도 :

sln.Projects[0].References.Add(@"C:\testfile.dll"); 
+0

나는이 오류 메시지가 나타납니다. 'EnvDTE.Projects'형식의 식에 []와 (와)의 인덱싱을 적용 할 수 없습니다. – Mathias