You can request service IVsBuildPropertyStorage
, it has following method:
SetPropertyValue: Used by a project subtype to set an MSBuild property value.
Something like this:
EnvDTE.Project proj = ...;
var sol = Package.GetGlobalService(typeof(VsSolution)) as IVsSolution;
IVsHierarchy hier;
sol.GetProjectOfUniqueName(p.UniqueName, out hier);
var storage = hier as IVsBuildPropertyStorage;
storage.SetPropertyValue(..);