Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitcebf6eb

Browse files
srivatsnKevinRansom
authored andcommitted
Fix the build events property page and the targetframework dropdown in the application page (#3284)
* Make the target framework dropdown in the application property page get the list of .NET Core\Standard frameworks from the SDK. This is similar to corresponding change for C#\VB -dotnet/project-system@aee40ba* Make the BuildEvents prop page work for CPS based projects. The value of the RunPostBuildEvent property when not set is an empty string in CPS whereas a missingvalue in the old project system. Handle both cases.
1 parentccc9c7b commitcebf6eb

File tree

3 files changed

+47
-9
lines changed

3 files changed

+47
-9
lines changed

‎vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/ApplicationPropPage.vb‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,10 @@ Namespace Microsoft.VisualStudio.Editors.PropertyPages
563563
Ifmoniker=""Ormoniker=NothingThen
564564
ReturnFalse
565565
EndIf
566+
' .NET Core and .NETStandard don't need redists to be installed.
567+
Ifmoniker.StartsWith(".NETCoreApp")OrElsemoniker.StartsWith(".NETStandard")Then
568+
ReturnTrue
569+
EndIf
566570
Ifmoniker.Contains("v2")Then
567571
ReturnMe.m_v20FSharpRedistInstalled
568572
EndIf
@@ -656,7 +660,8 @@ Namespace Microsoft.VisualStudio.Editors.PropertyPages
656660
DimisPortableAsBoolean=IsDotNetPortable(currentFrameworkName)
657661
targetFrameworkSupported=True
658662

659-
DimsupportedFrameworksAsIEnumerable(OfTargetFrameworkMoniker)=TargetFrameworkMoniker.GetSupportedTargetFrameworkMonikers(vsFrameworkMultiTargeting,DTEProject)
663+
DimsupportedTargetFrameworksDescriptorAsPropertyDescriptor=GetPropertyDescriptor("SupportedTargetFrameworks")
664+
DimsupportedFrameworksAsIEnumerable(OfTargetFrameworkMoniker)=TargetFrameworkMoniker.GetSupportedTargetFrameworkMonikers(vsFrameworkMultiTargeting,DTEProject,supportedTargetFrameworksDescriptor)
660665

661666
ForEachsupportedFrameworkAsTargetFrameworkMonikerInsupportedFrameworks
662667
IfMe.ValidateTargetFrameworkMoniker(supportedFramework.Moniker)Then

‎vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/BuildEventsPropPage.vb‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,10 @@ Namespace Microsoft.VisualStudio.Editors.PropertyPages
188188
ProtectedOverridesReadOnlyPropertyControlData()AsPropertyControlData()
189189
Get
190190
Ifm_ControlDataIsNothingThen
191-
m_ControlData=NewPropertyControlData(){_
192-
NewPropertyControlData(VsProjPropId2.VBPROJPROPID_PreBuildEvent,"PreBuildEvent",Me.txtPreBuildEventCommandLine,ControlDataFlags.None,NewControl(){btnPreBuildBuilder,lblPreBuildEventCommandLine}),_
193-
NewPropertyControlData(VsProjPropId2.VBPROJPROPID_PostBuildEvent,"PostBuildEvent",Me.txtPostBuildEventCommandLine,ControlDataFlags.None,NewControl(){btnPostBuildBuilder,lblPostBuildEventCommandLine}),_
194-
NewPropertyControlData(VsProjPropId2.VBPROJPROPID_RunPostBuildEvent,"RunPostBuildEvent",Me.cboRunPostBuildEvent,AddressOfRunPostBuildEventSet,AddressOfRunPostBuildEventGet,ControlDataFlags.None,NewControl(){Me.lblRunPostBuildEvent})_
191+
m_ControlData=NewPropertyControlData(){
192+
NewPropertyControlData(VsProjPropId2.VBPROJPROPID_PreBuildEvent,"PreBuildEvent",Me.txtPreBuildEventCommandLine,ControlDataFlags.None,NewControl(){btnPreBuildBuilder,lblPreBuildEventCommandLine}),
193+
NewPropertyControlData(VsProjPropId2.VBPROJPROPID_PostBuildEvent,"PostBuildEvent",Me.txtPostBuildEventCommandLine,ControlDataFlags.None,NewControl(){btnPostBuildBuilder,lblPostBuildEventCommandLine}),
194+
NewPropertyControlData(VsProjPropId2.VBPROJPROPID_RunPostBuildEvent,"RunPostBuildEvent",Me.cboRunPostBuildEvent,AddressOfRunPostBuildEventSet,AddressOfRunPostBuildEventGet,ControlDataFlags.None,NewControl(){Me.lblRunPostBuildEvent})
195195
}
196196
EndIf
197197

@@ -211,7 +211,7 @@ Namespace Microsoft.VisualStudio.Editors.PropertyPages
211211
''' <param name="value"></param>
212212
''' <remarks></remarks>
213213
PrivateFunctionRunPostBuildEventSet(ByValcontrolAsControl,ByValpropAsPropertyDescriptor,ByValvalueAsObject)AsBoolean
214-
If(Not(PropertyControlData.IsSpecialValue(value)))Then
214+
If(Not(PropertyControlData.IsSpecialValue(value)OrElseString.IsNullOrEmpty(TryCast(value,String))))Then
215215
Me.cboRunPostBuildEvent.SelectedIndex=CType(value,Integer)
216216
ReturnTrue
217217
Else

‎vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/TargetFrameworkMoniker.vb‎

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Imports Microsoft.VisualStudio.Shell.Interop
55
ImportsSystem
66
ImportsSystem.Collections.Generic
77
ImportsSystem.Runtime.Versioning
8+
ImportsSystem.ComponentModel
89

910
NamespaceMicrosoft.VisualStudio.Editors.PropertyPages
1011

@@ -49,14 +50,41 @@ Namespace Microsoft.VisualStudio.Editors.PropertyPages
4950
Returnm_DisplayName
5051
EndFunction
5152

53+
PrivateSharedFunctionAddDotNetCoreFramework(prgSupportedFrameworksAsArray,supportedTargetFrameworksDescriptorAsPropertyDescriptor)AsArray
54+
Dim_TypeConverterAsTypeConverter=supportedTargetFrameworksDescriptor.Converter
55+
If_TypeConverterIsNotNothingThen
56+
DimsupportedFrameworksListAsList(OfString)=NewList(OfString)
57+
ForEachmonikerAsStringInprgSupportedFrameworks
58+
supportedFrameworksList.Add(moniker)
59+
Next
60+
61+
ForEachframeworkValueAsObjectIn_TypeConverter.GetStandardValues()
62+
DimframeworkAsString=CStr(frameworkValue)
63+
IfframeworkIsNotNothingThen
64+
supportedFrameworksList.Add(framework)
65+
EndIf
66+
Next
67+
68+
ReturnsupportedFrameworksList.ToArray
69+
EndIf
70+
71+
ReturnprgSupportedFrameworks
72+
EndFunction
73+
74+
5275
''' <summary>
5376
''' Gets the supported target framework monikers from DTAR
5477
''' </summary>
5578
''' <param name="vsFrameworkMultiTargeting"></param>
56-
PublicSharedFunctionGetSupportedTargetFrameworkMonikers(ByValvsFrameworkMultiTargetingAsIVsFrameworkMultiTargeting,ByValcurrentProjectAsProject)AsIEnumerable(OfTargetFrameworkMoniker)
79+
PublicSharedFunctionGetSupportedTargetFrameworkMonikers(ByValvsFrameworkMultiTargetingAsIVsFrameworkMultiTargeting,
80+
ByValcurrentProjectAsProject,
81+
ByValsupportedTargetFrameworksDescriptorAsPropertyDescriptor)AsIEnumerable(OfTargetFrameworkMoniker)
5782

5883
DimsupportedFrameworksArrayAsArray=Nothing
5984
VSErrorHandler.ThrowOnFailure(vsFrameworkMultiTargeting.GetSupportedFrameworks(supportedFrameworksArray))
85+
IfsupportedTargetFrameworksDescriptorIsNotNothingThen
86+
supportedFrameworksArray=AddDotNetCoreFramework(supportedFrameworksArray,supportedTargetFrameworksDescriptor)
87+
EndIf
6088

6189
DimtargetFrameworkMonikerPropertyAs[Property]=currentProject.Properties.Item(ApplicationPropPage.Const_TargetFrameworkMoniker)
6290
DimcurrentTargetFrameworkMonikerAsString=CStr(targetFrameworkMonikerProperty.Value)
@@ -70,11 +98,16 @@ Namespace Microsoft.VisualStudio.Editors.PropertyPages
7098
IfhashSupportedTargetFrameworkMonikers.Add(moniker)Then
7199

72100
' Filter out frameworks with a different identifier since they are not applicable to the current project type
73-
DimnewFrameworkNameAsFrameworkName=newFrameworkName(moniker)
101+
DimnewFrameworkNameAsFrameworkName=NewFrameworkName(moniker)
74102
IfString.Compare(newFrameworkName.Identifier,currentFrameworkName.Identifier,StringComparison.OrdinalIgnoreCase)=0Then
75103
' Use DTAR to get the display name corresponding to the moniker
76104
DimdisplayNameAsString=""
77-
VSErrorHandler.ThrowOnFailure(vsFrameworkMultiTargeting.GetDisplayNameForTargetFx(moniker,displayName))
105+
IfString.Compare(newFrameworkName.Identifier,".NETStandard",StringComparison.Ordinal)=0OrElse
106+
String.Compare(newFrameworkName.Identifier,".NETCoreApp",StringComparison.Ordinal)=0Then
107+
displayName=CStr(supportedTargetFrameworksDescriptor.Converter?.ConvertTo(moniker,GetType(String)))
108+
Else
109+
VSErrorHandler.ThrowOnFailure(vsFrameworkMultiTargeting.GetDisplayNameForTargetFx(moniker,displayName))
110+
EndIf
78111

79112
supportedTargetFrameworkMonikers.Add(NewTargetFrameworkMoniker(moniker,displayName))
80113
EndIf

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp