2011-02-10 42 views
18

Trong MsBuild, có thể tạo điều kiện MSBuild (hoặc tình huống khác) sẽ đánh giá xem một thuộc tính có được định nghĩa hay không (giả sử rằng đây là giá trị trước đó để gán thuộc tính ở đâu đó)?kiểm tra nếu một thuộc tính MSBuild được xác định?

Sau đây dường như một chút quá vụng về là đáng tin cậy:

<PropertyGroup Label="Undefined State"> 
    <Defined></Defined> 
</PropertyGroup> 

<Choose> 
    <When Condition="('$(Defined)' == '' OR '$(Defined)' != '')"> 
     <Message Text="Defined is probably/likely/assuredly defined"/> 
    </When> 
    <Otherwise> 
     <Message Text="Defined is reportedly/maybe/possibly not defined"/> 
    </Otherwise> 
<Choose> 

Trả lời

31

Có tồn tại phương pháp chung để tính trọng.

mẫu từ C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets

<PropertyGroup> 
     <TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETFramework</TargetFrameworkIdentifier> 
     <TargetFrameworkVersion Condition=" '$(TargetFrameworkVersion)' == '' ">v4.0</TargetFrameworkVersion> 
    </PropertyGroup> 

Nếu bạn sẽ cố gắng để có được giá trị từ $ (NeverDefinedProperty) bạn chỉ nhận được một chuỗi rỗng. Bạn có thể mô tả vấn đề bạn muốn giải quyết không?

+1

Không phải câu trả lời tôi muốn, nhưng tôi thừa nhận câu trả lời là chính xác và do đó hữu ích. –

Các vấn đề liên quan