Мне нужно заставить все мои проекты использовать dll's
, которые хранятся в общем месте. Я начинаю с реорганизации существующих проектов, чтобы указать на исходную папку dll's
по моему предпочтению. Поэтому я решил попробовать программный способ изменения этих ссылок.Программно модифицировать ссылки DLL внутри файла проекта
Я прочитал dll
ссылки следующим образом:
XNamespace msbuild = "http://schemas.microsoft.com/developer/msbuild/2003";
XDocument projDefinition = XDocument.Load(filePath);
IEnumerable<string> references = projDefinition
.Element(msbuild + "Project")
.Elements(msbuild + "ItemGroup")
.Elements(msbuild + "Reference")
.Elements(msbuild + "HintPath")
.Select(refElem => refElem.Value);
Следующим шагом является изменение ссылки HintPath
на основе имени ссылки. Я планирую создать словарь ссылок, а затем пропустить их для обновления каждого из файлов проекта.
Однако я не могу найти твердый способ считывания и изменения HintPath
на основе Reference
внутри csproj
.
Проверьте этот ответ на подобный вопрос: http://stackoverflow.com/a/35233082/33082 –
Ответ показывает именно то, что я делаю, плюс он сваливает на ссылку, читался в формате TXT. Не очень полезно. Мне нужно изменить HintPath на основе ссылки. – eYe