Visual Studio工程属性页中的, 有几个经常看到的macro.
我感到疑惑的是这两个:
$(TargetName)
$(ProjectName)
如图:
这两者往往是相同的, 好像在Visual Studio 2010中总是一样的.
It is by design in Visual Studio 2010 that $(ProjectName) and $(TargetName) is the same by default unless you change $(TargetName) explictly in the property page.[1]
在[2]中也提到这个问题, Microsoft的专家说, 因为难以通过解析Link.OutputFile, 所以, 默认保持了$(TargetName)和$(ProjectName)的一致性.
但是, 我想知道TargetName和ProjectName本质上有什么不一样.
在Visual Studio中, 目标(Target)名是指哪个? 工程(Project)名有是指哪个? 跟方案(Solution)名有何区别?
在哪里可以看到这些宏的定义呢?
[1]
http://connect.microsoft.com/VisualStudio/feedback/details/506844/-targetname-becomes-equal-to-projectname-after-upgrading-from-a-vs2008-project-where-the-2-macros-are-assigned-different-values-causing-build-to-fail
[2]
http://social.msdn.microsoft.com/Forums/en-MY/vcprerelease/thread/3c03e730-6a0e-4ee4-a0d6-6a5c3ce4343c