有没有办法将 EnvDTE 项目全局变量保存到 vcxproj.user 文件而不是 .vcxproj 文件?

Is there a way to save EnvDTE Project global variables to the vcxproj.user file rather than the .vcxproj file?

如标题所述,我正在尝试将数据保存到用户文件 (projectname.vcxproj.user) 而不是项目文件 (projectname.vcxproj)

读取变量(或初始化它)是这样完成的:

var globals = project.Globals;

string readValue = "";

if (!globals.VariableExists["variablename"])
{
    globals.VariablePersists["variablename"] = true;
}
else
{
    readValue = (string)globals["variablename"];
}

写入数据是用这一行完成的

var globals = m_project.Globals;
globals["variablename"] = "write this value";

但是,数据被写入 .vcxproj 文件中

  <ProjectExtensions>
    <VisualStudio>
      <UserProperties variablename="write this value" />
    </VisualStudio>
  </ProjectExtensions>

而不是进入 .vcxproj.user 文件。是否可以改为写入 .vcxproj.user

关于 .vcxproj.user 文件的信息很少,您可能已经阅读了这个文档:.user files and why they are problematic or this doc: .vcxproj.user files.

通常情况下,这些天 .xxproj 文件中的属性默认为 set/stored。由于某些原因,.user文件用于特定属性,或在特定情况下使用。

我相信全局变量默认写入.vcxproj文件,不可能将全局变量写入.vcxproj.user文件