in vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/PropertyControlData.vb [2251:2299]
Public Overridable Function FilesToCheckOut() As String()
Const PERUSER_EXTENSION As String = ".user"
If m_PropPage Is Nothing OrElse m_PropPage.DTEProject Is Nothing OrElse m_PropPage.m_ObjectsPropertyDescriptorsArray Is Nothing OrElse m_PropPage.m_ExtendedObjects Is Nothing Then
Debug.Fail("PropertyControlData.FilesToCheckOut: can't determine files to check out because of an uninitialized field")
Else
If (Me.Flags And ControlDataFlags.PersistedInProjectUserFile) <> 0 Then
Return New String() {m_PropPage.DTEProject.FullName & PERUSER_EXTENSION}
ElseIf (Me.Flags And ControlDataFlags.PersistedInVBMyAppFile) <> 0 Then
Try
Dim MyAppProperties As MyApplication.MyApplicationPropertiesBase = _
DirectCast(m_PropPage.m_ObjectsPropertyDescriptorsArray(0)("MyApplication").GetValue(m_PropPage.m_ExtendedObjects(0)), MyApplication.MyApplicationPropertiesBase)
Debug.Assert(MyAppProperties IsNot Nothing)
If MyAppProperties IsNot Nothing Then
Return MyAppProperties.FilesToCheckOut(True)
End If
Catch ex As Exception When Not Common.IsUnrecoverable(ex)
Debug.Fail("Unable to retrieve MyApplicationProperties to figure out set of files to check out")
End Try
ElseIf (Me.Flags And ControlDataFlags.PersistedInAppManifestFile) <> 0 Then
Dim AppManifest As String = GetSpecialFile(__PSFFILEID2.PSFFILEID_AppManifest, True)
If AppManifest <> "" Then
Return New String() {AppManifest}
End If
ElseIf (Me.Flags And ControlDataFlags.PersistedInAssemblyInfoFile) <> 0 Then
Dim AssemblyInfo As String = GetSpecialFile(__PSFFILEID2.PSFFILEID_AssemblyInfo, True)
If AssemblyInfo <> "" Then
Return New String() {AssemblyInfo}
End If
ElseIf (Me.Flags And ControlDataFlags.PersistedInApplicationDefinitionFile) <> 0 Then
Const PSFFILEID_AppXaml As Integer = -1008
Dim applicationDefinition As String = GetSpecialFile(PSFFILEID_AppXaml, True)
If applicationDefinition <> "" Then
Return New String() {applicationDefinition}
End If
ElseIf (Me.Flags And ControlDataFlags.NoOptimisticFileCheckout) <> 0 Then
Return New String() {}
Else
Return New String() {m_PropPage.DTEProject.FullName}
End If
End If
Return New String() {}
End Function