2013-11-28 2 views
3

Я хочу создать новый проект по коду и добавить ссылки на DLL для моего проекта.Добавить ссылку библиотеки DLL на проект в VSX

Вот мой код

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 Имеет ли он помог? –

0

Попробуйте это:

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

Когда я попробую выше, я получаю это сообщение об ошибке: Невозможно применить индексирование с [] к выражению типа «EnvDTE.Projects» – Mathias