首页 > 解决方案 > 有没有办法将 EnvDTE Project 全局变量保存到 vcxproj.user 文件而不是 .vcxproj 文件?

问题描述

正如标题所述,我正在尝试将数据保存到用户文件(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

标签: visual-studio-extensionsvsixenvdte

解决方案


关于.vcxproj.user文件的信息很少,您可能已经阅读过此文档:.user 文件以及它们存在问题的原因或此文档:.vcxproj.user 文件

.xxproj通常,这些天默认情况下将属性设置/存储在文件中。由于某些原因,该.user文件用于特定属性或特定情况下。

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


推荐阅读