Не совсем понимаю, в чем именно проблема. Например: небольшой фрагмент из моего старого проекта для замены PackageReference
на ProjectReference
для облегчения локальной отладки:
private void SwitchExplicitPackage(MSProject.Project project, NugetPackage package, Dictionary<string, string> projects)
{
ProjectItem item = project.GetItemsByEvaluatedInclude(package.Identity).FirstOrDefault();
if (item == null)
return;
/*
* Metadata is needed for compatibility with classic projects.
*/
MSProject.Project newProject = _projectHelper.GetLoadedProject(projects[package.Identity]);
item.UnevaluatedInclude = projects[package.Identity];
item.SetMetadataValue(REF_METADATA_PACKAGE, package.Identity);
item.SetMetadataValue(REF_METADATA_PROJECT, newProject.GetPropertyValue("ProjectGuid"));
item.SetMetadataValue(REF_METADATA_NAME , newProject.GetPropertyValue("ProjectName"));
item.ItemType = PROJECT_REF; // ProjectReference
_journalHelper.AddMessage($"Explicit dependency { package.Identity } switched to { projects[package.Identity] }", TaskErrorCategory.Message);
}
Фактически, все сводится к поиску необходимой ссылки и замене атрибутов. После сохранения Visual Studio обнаружила изменения и запросила перезагрузку проекта, после чего изменения были применены.