<?xml version="1.0" encoding="utf-8"?>
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE.md file in the project root for more information. -->
<Rule Name="ResolvedAssemblyReference"
      Description="Assembly Reference Properties"
      DisplayName="Assembly Reference"
      PageTemplate="generic"
      xmlns="http://schemas.microsoft.com/build/2009/properties">
  <Rule.DataSource>
    <DataSource HasConfigurationCondition="False"
                ItemType="Reference"
                MSBuildTarget="ResolveAssemblyReferencesDesignTime"
                Persistence="ResolvedReference"
                SourceOfDefaultValue="AfterContext"
                SourceType="TargetResults" />
  </Rule.DataSource>

  <StringListProperty Name="Aliases"
                      Description="A comma-delimited list of aliases to this reference."
                      DisplayName="Aliases"
                      Separator=",">
    <StringListProperty.DataSource>
      <DataSource HasConfigurationCondition="False"
                  ItemType="Reference"
                  Persistence="ProjectFile"
                  SourceOfDefaultValue="AfterContext" />
    </StringListProperty.DataSource>
  </StringListProperty>
  
  <StringProperty Name="BrowsePath"
                  ReadOnly="True"
                  Visible="False">
    <StringProperty.DataSource>
      <DataSource PersistedName="Identity"
                  SourceOfDefaultValue="AfterContext" />
    </StringProperty.DataSource>
  </StringProperty>

  <BoolProperty Name="CopyLocal"
                Description="Indicates whether the reference will be copied to the output directory."
                DisplayName="Copy Local">
    <BoolProperty.DataSource>
      <DataSource HasConfigurationCondition="False"
                  ItemType="Reference"
                  PersistedName="Private"
                  Persistence="ProjectFile"
                  SourceOfDefaultValue="AfterContext" />
    </BoolProperty.DataSource>
  </BoolProperty>

  <StringProperty Name="Culture"
                  ReadOnly="True"
                  Visible="False" />

  <StringProperty Name="Description"
                  ReadOnly="True"
                  Visible="False" />

  <BoolProperty Name="EmbedInteropTypes"
                Description="Indicates whether types defined in this assembly will be embedded into the target assembly."
                DisplayName="Embed Interop Types">
    <BoolProperty.DataSource>
      <DataSource HasConfigurationCondition="False"
                  ItemType="Reference"
                  Persistence="ProjectFile"
                  SourceOfDefaultValue="AfterContext" />
    </BoolProperty.DataSource>
  </BoolProperty>

  <EnumProperty Name="FileType"
                ReadOnly="True"
                Visible="False">
    <EnumValue Name="Assembly" />
    <EnumValue Name="ActiveX" />
    <EnumValue Name="Native Assembly" />
  </EnumProperty>

  <StringProperty Name="FrameworkFile"
                  ReadOnly="True"
                  Visible="False" />

  <StringProperty Name="FusionName"
                  ReadOnly="True"
                  Visible="False" />

  <StringProperty Name="HintPath"
                  Visible="false" />

  <StringProperty Name="Identity"
                  Description="Security identity of the referenced assembly (see System.Reflection.Assembly.Evidence or System.Security.Policy.Evidence)."
                  DisplayName="Identity"
                  ReadOnly="True">
    <StringProperty.DataSource>
      <DataSource PersistedName="{}{Identity}"
                  SourceOfDefaultValue="AfterContext" />
    </StringProperty.DataSource>
  </StringProperty>

  <StringProperty Name="IsImplicitlyDefined"
                  ReadOnly="True"
                  Visible="False" />

  <BoolProperty Name="IsWinMDFile"
                Visible="false" />

  <StringProperty Name="Name"
                  ReadOnly="True"
                  Visible="false" />

  <StringProperty Name="OriginalItemSpec"
                  ReadOnly="True"
                  Visible="False" />

  <StringProperty Name="ReferenceFromSDK"
                  ReadOnly="True"
                  Visible="False" />

  <StringProperty Name="RequiredTargetFramework"
                  Visible="False" />

  <StringProperty Name="ResolvedFrom"
                  ReadOnly="True"
                  Visible="False" />

  <StringProperty Name="ResolvedPath"
                  Description="Location of the file being referenced."
                  DisplayName="Path"
                  ReadOnly="True">
    <StringProperty.DataSource>
      <DataSource PersistedName="Identity"
                  SourceOfDefaultValue="AfterContext" />
    </StringProperty.DataSource>
  </StringProperty>

  <StringProperty Name="RuntimeVersion"
                  ReadOnly="True"
                  Visible="False" />

  <StringProperty Name="SDKIdentity"
                  Visible="false" />

  <BoolProperty Name="SpecificVersion"
                Description="Indicates whether this assembly can be resolved without regard to multi-targeting rules for assembly resolution."
                DisplayName="Specific Version">
    <BoolProperty.DataSource>
      <DataSource HasConfigurationCondition="False"
                  ItemType="Reference"
                  Persistence="ProjectFile"
                  SourceOfDefaultValue="AfterContext" />
    </BoolProperty.DataSource>
  </BoolProperty>

  <BoolProperty Name="StrongName"
                ReadOnly="True"
                Visible="False" />

  <StringProperty Name="Version"
                  Description="Version of reference."
                  DisplayName="Version"
                  ReadOnly="True" />

  <BoolProperty Name="Visible"
                ReadOnly="True"
                Visible="False" />

  <BoolProperty Name="WinMDFile"
                ReadOnly="True"
                Visible="false" />

  <BoolProperty Name="TreatAsUsed"
                Description="Indicates that this reference should be treated as if it were used."
                DisplayName="Treat as used"
                Visible="True"
                ReadOnly="True" />

</Rule>
