我继承了一个C#解决方案,其中项目具有已配置的"构建后命令行"。在此命令行中,有几个用户定义的属性表宏将各种输出文件复制到特定文件夹。但是,当我构建任何项目时,宏被错误地定义为空字符串。
E.g。
copy "$(TargetPath)" "$(PluginPath)\$(ConfigurationName)"
标准宏,例如$(TargetPath),工作得很好,但我无法看到任何控制用户定义宏值的方法。在构建后的步骤中,有一个"宏>>"显示标准宏的按钮,但我无法看到编辑其值或添加新的用户定义宏。
看起来以前的开发人员有这个工作,所以我错过了什么?
我已经读过宏可以在.vsprops文件中定义,但只有Visual C ++项目支持这些文件。当我查看Property Manager窗口时,我只看到消息"没有加载Visual C ++项目"。 (我希望用户定义的属性表宏在C ++项目的构建后命令行"和C#或任何语言的项目中同样有用。)
答案 0 :(得分:5)
通过快速搜索,我找到了this,这可能有所帮助。
<强>更新强>
将以下内容添加到我的.csproj项目文件后,我可以将PluginPath用作带有copy "$(TargetPath)" "$(PluginPath)\$(ConfigurationName)"
的后期构建命令行中的宏(在Visual Studio 2008中测试)
...
<PluginPath>C:\apps\</PluginPath>
</PropertyGroup>
答案 1 :(得分:1)
您可以按照以下说明执行任何解决方案。
创建批处理文件并插入以下代码
设置MY_INCLUDES_DIR = D:\ MyIncludes 调用&#34; C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ Tools \ vsvars32.bat&#34; &#34; C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ devenv.exe&#34; d:\ MySolution.sln
双击此文件启动Visual Studio解决方案。此解决方案的优点是所有项目都可以使用相同的环境变量。
在visual studio项目文件中定义以下xml标记。
<PropertyGroup>
<MY_INCLUDES_DIR>D:\MyIncludes\</MY_INCLUDES_DIR>
</PropertyGroup>
&#13;
创建名为MY_INCLUDES_DIR的系统环境变量,并在visual studio中使用$(MY_INCLUDES_DIR)。