Как я могу предоставить значение по умолчанию для переменной в проекте VS2010? - PullRequest
1 голос
/ 13 января 2012

Я использую переменные окружения в моих проектах VS2010 ;это прекрасно работает.

Но я хотел бы иметь значения по умолчанию, которые используются всякий раз, когда переменная окружения не существует.Возможно ли это?

Редактировать / Решено : моя страница свойств выглядит следующим образом (THIRDPARTY_ROOT можно переопределить, задав ее в среде):

<?xml version="1.0" encoding="utf-8"?>
<!--
 * Property sheet for 3rd party libraries
 *
 * - The BOOST_VER variable should be set to the same value as in common.mk
 * - The THIRDPARTY_ROOT variable can be overridden by an environment variable
 *   with the same name.
 *
 -->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ImportGroup Label="PropertySheets" />
  <PropertyGroup Label="UserMacros">
    <BOOST_VER>boost_1_48_0</BOOST_VER>
    <THIRDPARTY_ROOT Condition="'$(THIRDPARTY_ROOT)' == '' ">C:\local\3rdparty</THIRDPARTY_ROOT>
  </PropertyGroup>
  <PropertyGroup />
  <ItemDefinitionGroup>
    <ClCompile>
      <AdditionalIncludeDirectories>$(THIRDPARTY_ROOT)\$(BOOST_VER)</AdditionalIncludeDirectories>
    </ClCompile>
    <Link />
  </ItemDefinitionGroup>
  <ItemGroup>
    <BuildMacro Include="BOOST_VER">
      <Value>$(BOOST_VER)</Value>
    </BuildMacro>
    <BuildMacro Include="THIRDPARTY_ROOT">
      <Value>$(THIRDPARTY_ROOT)</Value>
    </BuildMacro>
  </ItemGroup>
</Project>

1 Ответ

3 голосов
/ 13 января 2012

Одним из возможных решений является предоставление значений по умолчанию в файле проекта.

Это можно сделать с помощью атрибута Condition при определении этой переменной в файле проекта, чтобы указать, что ее следует использовать, только если свойство не имеет значения.

Например, если ToolsPath - переменная среды, вы можете добавить этот код в файл проекта:

<ToolsPath Condition="'$(ToolsPath)' == '' ">
    C:\Tools
</ToolsPath>

( MSDN Reference )

...