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