Есть ли в любом случае ссылка может быть добавлена в решение программно?C# Visual Studio ... добавление ссылок программно
У меня есть кнопка надстройки, когда пользователь нажимает ее, я хочу, чтобы ссылка была добавлена. Это возможно?
Есть ли в любом случае ссылка может быть добавлена в решение программно?C# Visual Studio ... добавление ссылок программно
У меня есть кнопка надстройки, когда пользователь нажимает ее, я хочу, чтобы ссылка была добавлена. Это возможно?
Что-то вроде этого я не проверял это
получить среду
EnvDTE80.DTE2 pEnv = null;
Type myType = Type.GetTypeFromProgID("VisualStudio.DTE.8.0");
pEnv = (EnvDTE80.DTE2)Activator.CreateInstance(myType, true);
получить решение.
Solution2 pSolution = (Solution2)pEnv.VS.Solution;
получить проект, который вы хотите
Project pProject = pSolution.Projects[0];
добавить ссылку
pProject.References.Add(string referenceFilePath);
System.Assembly.load
Позволяет вам вызвать функции в библиотеке, которые не были созданы с вашей программой.
Я сделал это в макрос, который VB, но я уверен, что вы можете получить представление
DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
Dim objProject As EnvDTE.Project
Dim i As Long
i = DTE.Solution.Projects.Count
For Each objProject In DTE.Solution.Projects
If (objProject.Name() = "csCA") Then
Dim vsproj As VSLangProj.VSProject
vsproj = objProject.Object
vsproj.References.Add("C:\Users\test.dll")
End If
Next
Существует пример на CodeProject.
Функциональность содержится в пределах одного класса elRefManager
, а метод для вызова - CheckReferences
. Код можно посмотреть на here, выбрав файл elRefManager.cs с левой стороны.
Как видно из статьи, которую вы могли бы сделать ...
private void button1_Click(object sender, System.EventArgs e)
{
int ec;
ec=elRefManager.CheckReferences(null, new string[] {textBox1.Text});
if (ec<0)
MessageBox.Show("An error occurred adding this reference");
if (ec>0)
MessageBox.Show("Could not add " + textBox1.Text +
"\nCheck its spelling and try again");
}
Какие приложения вы развивается, что требует этого? – Bernard 2010-12-10 15:18:52
Вам интересно узнать, возможно ли это, или в _how_, чтобы достичь этого? – Oded 2010-12-10 15:19:04
Возможно. Я делал это раньше. Я не помню код, который я использовал для этого, хотя – scott 2010-12-10 15:19:12