C#中的Visual Studio用户定义属性表宏

时间:2014-06-18 09:05:19

标签: c# visual-studio macros

我继承了一个C#解决方案,其中项目具有已配置的"构建后命令行"。在此命令行中,有几个用户定义的属性表宏将各种输出文件复制到特定文件夹。但是,当我构建任何项目时,宏被错误地定义为空字符串。

E.g。

copy "$(TargetPath)" "$(PluginPath)\$(ConfigurationName)"

标准宏,例如$(TargetPath),工作得很好,但我无法看到任何控制用户定义宏值的方法。在构建后的步骤中,有一个"宏>>"显示标准宏的按钮,但我无法看到编辑其值或添加新的用户定义宏。

看起来以前的开发人员有这个工作,所以我错过了什么?

我已经读过宏可以在.vsprops文件中定义,但只有Visual C ++项目支持这些文件。当我查看Property Manager窗口时,我只看到消息"没有加载Visual C ++项目"。 (我希望用户定义的属性表宏在C ++项目的构建后命令行"和C#或任何语言的项目中同样有用。)

2 个答案:

答案 0 :(得分:5)

通过快速搜索,我找到了this,这可能有所帮助。

<强>更新 将以下内容添加到我的.csproj项目文件后,我可以将PluginPath用作带有copy "$(TargetPath)" "$(PluginPath)\$(ConfigurationName)"的后期构建命令行中的宏(在Visual Studio 2008中测试)

    ...
    <PluginPath>C:\apps\</PluginPath>
</PropertyGroup>

答案 1 :(得分: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

  2. 双击此文件启动Visual Studio解决方案。此解决方案的优点是所有项目都可以使用相同的环境变量。

    1. 在visual studio项目文件中定义以下xml标记。

      &#13;
      &#13;
      <PropertyGroup>
          <MY_INCLUDES_DIR>D:\MyIncludes\</MY_INCLUDES_DIR>
      </PropertyGroup>
      &#13;
      &#13;
      &#13;  

    2. 创建名为MY_INCLUDES_DIR的系统环境变量,并在visual studio中使用$(MY_INCLUDES_DIR)。