从Visual Studio中指定项目属性值

时间:2011-09-27 10:43:05

标签: visual-studio-2010 msbuild

如果我在项目文件中定义了属性,那么

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <foo>bar</foo>
    </PropertyGroup>
</Project>

我可以使用/p:foo=newValue轻松地在MSBuild命令行上设置这些属性。

有没有办法在Visual Studio(2010)GUI中指定属性值?我看了一下但在项目属性页面中找不到任何内容。

2 个答案:

答案 0 :(得分:2)

您在寻找条件编译符号吗?

在VS2010中:

  1. 转到项目属性
  2. 转到“构建”标签
  3. 在“常规”下,您将看到一个用于定义“条件编译符号”的位置。
  4. 您可以在那里输入“foo = bar”,您将在.csproj文件中输入:

    <Project ...>
      <PropertyGroup ...>
        <DefineConstants>Foo=bar</DefineConstants>
      </PropertyGroup>
    </Project>
    

答案 1 :(得分:1)

我在寻找同一个问题的答案时发现了这个问题:在命令行上调用MSBuild时,我可以轻松地使用/p或环境变量来控制事情,但是你如何在IDE中做类似的事情呢?

我的解决方案是添加“用户”属性文件。那是

 <!-- Running from the IDE, you can't simply set properties via /p or environment variables.
 So, this local file is read if it exists.  It is not checked in to version control; but can contain
 settings to be used for your immediate work.  
 If you make a settings.props.user file, remember DO NOT check it in!
 -->
<ImportGroup>
    <Import 
      Condition="exists('$(MSBuildThisFileDirectory)settings.props.user')"
      Project="$(MSBuildThisFileDirectory)settings.props.user" />
</ImportGroup>

我现在可以编辑位于同一目录中的文件settings.props.user中的一些属性,而不用担心无意中检查有趣的设置。即使在IDE中构建,它也会在构建时重新读取文本文件。因此,只需将props.user文件保持在文本编辑器中打开,它就可以在没有IDE扩展的情况下随时更改。