Visual Studio-在哪里定义自定义路径宏?


90

我刚刚打开了其他人的Visual Studio项目,在他们的构建属性中,他们有一些自定义路径宏,它们正在用于其include和lib目录。宏名称是这样的:

$(MY_WHATEVER_INCLUDE_DIR)

我可以用实际路径手动替换每个宏,但是只使用宏会很好。我的问题是,在哪里定义这些自定义路径宏?


2
好吧,福吉,我希望这真的很容易找到。10分钟后我放弃了。。。向我+1。自VS 6.0天以来,它似乎已经发生了变化。。。您的用户是否有可能直接在他们的环境中定义了这些?
Frank Merrow

1
gregseth的答案包含了对该问题的真正解决方案:编辑属性表时,“公共属性”下有一个“用户宏”部分,但仅当该表特定于解决方案/项目时。因此,如果您正在编辑所有项目之间共享的默认工作表,则不会显示用户宏。请参阅下面我对gregseth答案的评论。
卡姆·杰克逊

1
在Visual Studio 2010中,使用.props文件可以定义/更改宏。在此之前,文件扩展名为.vsprops。
Aditya Kumar Pandey,2012年

1
我在这里写了有关属性shset使用的更多详细信息:stackoverflow.com/q/25810603/398670
Craig Ringer

Answers:


47

此链接http://msdn.microsoft.com/zh-cn/library/a2zdt10t(v=vs.90).aspx可能会让您感兴趣。我不喜欢仅仅为了构建项目而更改整个系统配置的想法。页面上最有趣的部分是最后一条评论:

此页面未提及如何进入此对话框:

在属性管理器中,双击属性页。单击树控件中“公共属性”下的“用户宏”。


8
嗯..我似乎没有“公共属性”下的“用户宏”选项。我使用的是VS 2010 Pro
Jelle Vergeer,

21
@Jelle上面链接的较大注释包含您需要的其他信息!仅当您正在编辑的属性表特定于项目/解决方案时,“用户宏”才会显示在“公共属性”下!因此,您需要做的是在VS中打开“属性管理器”窗口,右键单击您的项目并添加一个新的属性表。然后在新创建的工作表上单击鼠标右键->“属性”,您现在将在“公共属性”下面看到“用户宏”选项!希望能对您有所帮助:)
Cam Jackson

1
这是一个隐藏的选项。这是MSVS支持页面(msdn.microsoft.com/en-us/library/f2t8ztwy%28v=vs.90%29.aspx)的新链接,几乎没有。在此页面(sites.google.com/site/pinyotae/Home/visual-studio-visual-c/…)中,列出了更详细的步骤列表,虽然不完美,但可以给您一些提示。
哈维尔先生

1
在此处添加了更多信息和示例:stackoverflow.com/q/25810603/398670。要理解的一件事是,属性表可以附加到所有,某些或仅一个配置/平台组合。与普通属性编辑器不同的是,不同的配置/平台没有不同的值。如果需要的话,可以使用不同的表。一旦弄清楚如何合并多个工作表并让一个工作表引用另一个工作表宏,就非常灵活。
Craig Ringer 2014年

关于Visual Studio 2019和Doug Kimzey的评论,可以在VS 2019中添加它们。可以按照Serge Rogatch响应指示的过程添加和编辑用户宏。我花了一点时间才找到它。:)
汉普

37

这里用图片描述了这种方法:https : //sites.google.com/site/pinyotae/Home/visual-studio-visual-c/create-user-defined-environment-variables-macros

在Visual Studio中,您需要:

  1. 在主菜单中单击“查看”,然后单击“属性管理器”
  2. 在“属性管理器”窗口的空白处单击鼠标右键,然后在弹出菜单中单击“添加新项目属性表”
  3. 添加属性表后,在“属性管理器”窗口和左侧选择属性页“用户宏”的树中双击它
  4. 然后您可以单击“添加宏”按钮

这是有关项目属性表的教程:http : //www.dorodnic.com/blog/2014/03/20/visual-studio-macros/


6
这个答案需要更多的投票。请选择此可接受的答案。当前接受的答案甚至无法回答问题。
Mike S

1
如果不是很明显(对我而言不是),则必须将属性表添加到所有项目中(假设在同一解决方案中有多个)。我不知道为什么它不起作用,但后来意识到我已将其添加到另一个项目中。
马特


7

属性表很可能是正确的解决方案; 该答案详细说明了@gregseth的答案,而不是试图替换它,因为评论太长了。

我发现我需要为32位和64位目标使用不同的路径,并且这样做花了点时间,因此我详细记录了该过程

我对属性表的一个关键误解是,与通常的VS属性编辑器不同,该属性编辑器可以编辑不同的配置/平台组合,而属性表只是属性列表。它没有按配置和按平台的小节。这令人困惑,因为当我向工程中添加工作表时,它出现在每个配置/平台节点下,而不是在顶层项目节点下。所有条目实际上都是针对同一个属性表文件的,因此编辑它们会更改所有这些条目,但是我最初并不了解这一点,因此我仍然需要分别更改每个位置的值。

您可以将属性表仅添加到一个配置/平台组合,全部或部分子集。

如果要具有全局设置,则可以通过确保更具体的属性表位于最后来覆盖配置/平台。因此,您可能会有一个属性表“所有配置”,然后一个属性表“ x86”,一个属性表“ x64”,一个属性表“ debug”,一个属性表“ release”。x64调试目标的工作表为“ all”,“ x86”,“ debug”。基本上模拟VS的属性编辑器在内部执行的操作。


3

回覆: 嗯。。我似乎没有“公共属性”下的“用户宏”选项。我正在使用VS 2010 Pro

如果您打开项目文件的属性对话框(如在常规“文件”视图中一样),则不会显示“用户宏”选项。您必须切换到“属性”视图,展开一些项目,然后选择为此目的添加的属性页(* .props)。用户宏显示在此处。

或者,您可以直接编辑XML。如果在。* proj文件中定义宏,则工作正常,但如果没有编辑页面,则将其设置为“用户宏”毫无意义。因此,只需将其设为<PropertyGroup>中的普通属性即可。

如前所述,它还引入了环境变量。但是,您必须确保将它们设置在Devenv可以看到它们的环境中!在命令外壳中执行此操作,然后从同一命令提示符运行DEVENV。遇到这种情况时,我制作了一个批处理文件以设置适当的变量并启动DEVENV,然后将该bat文件图标放在桌面上。


1
“属性视图”可能是VS版本中的“属性管理器”,可以通过“视图”->“其他Windows”访问。
克雷格·林格2014年

1
我想当它与文件,类和资源树视图一起作为选项卡停靠时,它将变成视图。
JDługosz

2

尝试另一种方式,避免麻烦添加到每个属性表

转到Windows操作系统的系统属性 > 环境变量,仅新建,然后输入变量,例如:MY_PATH和值,例如:D:\ Dev_Path \

之后,您必须重新启动Visual Studio,您应该能够在宏列表中包含$ {MY_PATH}

p / s:请注意,上面回答的Jason Williams是OS Environment Variables方法


如果您希望您的资产仅属于您的项目,则不是一个好主意。
Mia Shani

您正在使用哪个应用程序设置这些属性?
Doug Kimzey

1

与@Serge Rogatch的答案相同,除了我无法在View中找到“属性管理器”。

快速导航的可视步骤: 在此处输入图片说明


0

最新的Visual Studio版本(2015+)的方式如下:

要创建用户定义的宏:

  1. 在“属性管理器”窗口中(在菜单栏上,选择“视图”,“属性管理器”),打开属性表的快捷菜单(其名称以.user结尾),然后选择“属性”。
  2. 该属性表的“属性页”对话框打开。在对话框的左窗格中,选择“用户宏”。在右窗格中,选择“添加宏”按钮以打开“添加用户宏”对话框。
  3. 在对话框中,为宏指定名称和值。(可选)选中“在构建环境中将此宏设置为环境变量”复选框。

资源


在Visual Studio 2019的“视图”菜单中没有所谓的“属性管理器”。在Visual Studio 2019的“属性”页中没有“用户宏”之类的条目。在“ Visual Studio 2019帮助”中搜索“用户宏”会启动“新建项目”对话框。
Doug Kimzey

VS2019-视图->其他Windows->物业管理器(您将在正确的轨道上!)
Kirk Ba​​tes
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.