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

Commitc552a5a

Browse files
committed
Add a UseStandardResourceNames flag (disabled by default)
With``` <UseStandardResourceNames>true</UseStandardResourceNames>```we get the following output```--resource:AFolder/AResourceFile.txt,fsharpresource.AFolder.AResourceFile.txt```With the value omitted or set to false, the behaviour is as it was previously.```--resource:AFolder/AResourceFile.txt```
1 parentefb0c3e commitc552a5a

File tree

5 files changed

+36
-3
lines changed

5 files changed

+36
-3
lines changed

‎src/fsharp/FSharp.Build/CreateFSharpManifestResourceName.fs‎

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@ open Microsoft.Build.Utilities
99

1010
typeCreateFSharpManifestResourceNamepublic()=
1111
inherit CreateCSharpManifestResourceName()
12-
12+
13+
// When set to true, generate resource names in the same way as C# with root namespace and folder names
14+
member valUseStandardResourceNames=falsewith get, set
15+
1316
overridethis.CreateManifestName
1417
((fileName:string),
1518
(linkFileName:string),
@@ -24,6 +27,20 @@ type CreateFSharpManifestResourceName public () =
2427
// For resx resources, both the Visual FSharp and XBuild FSHarp toolchains do the right thing, i.e.
2528
// SubDir\abc.resx --> SubDir.abc.resources
2629

30+
letfileName,linkFileName,rootNamespace=
31+
match this.UseStandardResourceNameswith
32+
|true->
33+
fileName, linkFileName, rootNamespace
34+
|false->
35+
letrunningOnMono=
36+
try
37+
System.Type.GetType("Mono.Runtime")<>null
38+
with e->
39+
false
40+
letfileName=ifnot runningOnMono|| fileName.EndsWith(".resources", StringComparison.OrdinalIgnoreCase)then fileNameelse Path.GetFileName(fileName)
41+
letlinkFileName=ifnot runningOnMono|| linkFileName.EndsWith(".resources", StringComparison.OrdinalIgnoreCase)then linkFileNameelse Path.GetFileName(linkFileName)
42+
fileName, linkFileName,""
43+
2744
letembeddedFileName=
2845
match linkFileNamewith
2946
|null-> fileName

‎src/fsharp/FSharp.Build/CreateFSharpManifestResourceName.fsi‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ namespace Microsoft.FSharp.Build
66
typeCreateFSharpManifestResourceName=
77
inherit Microsoft.Build.Tasks.CreateCSharpManifestResourceName
88
publicnew: unit-> CreateFSharpManifestResourceName
9+
memberUseStandardResourceNames:bool with get,set

‎src/fsharp/FSharp.Build/Fsc.fs‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ type [<Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:Iden
167167
| Some s-> s
168168
| None->""
169169
let mutabletreatWarningsAsErrors:bool=false
170+
let mutableuseStandardResourceNames:bool=false
170171
let mutablewarningsAsErrors:string=null
171172
let mutableversionFile:string=null
172173
let mutablewarningLevel:string=null
@@ -249,7 +250,10 @@ type [<Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:Iden
249250
// Resources
250251
if resources<>nullthen
251252
for itemin resourcesdo
252-
builder.AppendSwitchIfNotNull("--resource:", item.ItemSpec,[|item.GetMetadata("LogicalName"); item.GetMetadata("Access")|])
253+
match useStandardResourceNameswith
254+
|true-> builder.AppendSwitchIfNotNull("--resource:", item.ItemSpec,[|item.GetMetadata("LogicalName"); item.GetMetadata("Access")|])
255+
|false-> builder.AppendSwitchIfNotNull("--resource:", item.ItemSpec)
256+
253257
// VersionFile
254258
builder.AppendSwitchIfNotNull("--versionfile:", versionFile)
255259
// References
@@ -457,7 +461,10 @@ type [<Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:Iden
457461
memberfsc.TargetType
458462
with get()= targetType
459463
andset(s)= targetType<- s
460-
464+
// When set to true, generate resource names in the same way as C# with root namespace and folder names
465+
memberfsc.UseStandardResourceNames
466+
with get()= useStandardResourceNames
467+
andset(s)= useStandardResourceNames<- s
461468
// --version-file <string>:
462469
memberfsc.VersionFile
463470
with get()= versionFile

‎src/fsharp/FSharp.Build/Fsc.fsi‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ type Fsc = class
4646
member TargetType: string with get,set
4747
member ToolPath: string with get,set
4848
member TreatWarningsAsErrors: bool with get,set
49+
member UseStandardResourceNames: bool with get,set
4950
member Utf8Output: bool with get,set
5051
member VisualStudioStyleErrors: bool with get,set
5152
member LCID: string with get,set

‎src/fsharp/FSharp.Build/Microsoft.FSharp.Targets‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,24 +89,28 @@ this file.
8989

9090
<CreateFSharpManifestResourceName
9191
Condition="'@(ResxWithNoCulture)' != '' AND '$(UsingXBuild)' == 'true'"
92+
UseStandardResourceNames="$(UseStandardResourceNames)"
9293
ResourceFiles="@(ResxWithNoCulture)"RootNamespace="$(RootNamespace)">
9394
<Output TaskParameter ="ManifestResourceNames" ItemName ="ManifestResourceWithNoCultureName" />
9495
</CreateFSharpManifestResourceName>
9596

9697
<CreateFSharpManifestResourceName
9798
Condition="'@(NonResxWithNoCulture)' != '' AND '$(UsingXBuild)' == 'true'"
99+
UseStandardResourceNames="$(UseStandardResourceNames)"
98100
ResourceFiles="@(NonResxWithNoCulture)"RootNamespace="$(RootNamespace)">
99101
<Output TaskParameter ="ManifestResourceNames" ItemName ="ManifestNonResxWithNoCulture" />
100102
</CreateFSharpManifestResourceName>
101103

102104
<CreateFSharpManifestResourceName
103105
Condition="'@(ResxWithCulture)' != '' AND '$(UsingXBuild)' == 'true'"
106+
UseStandardResourceNames="$(UseStandardResourceNames)"
104107
ResourceFiles="@(ResxWithCulture)"RootNamespace="$(RootNamespace)">
105108
<Output TaskParameter ="ManifestResourceNames" ItemName ="ManifestResourceWithCultureName" />
106109
</CreateFSharpManifestResourceName>
107110

108111
<CreateFSharpManifestResourceName
109112
Condition="'@(NonResxWithCulture)' != '' AND '$(UsingXBuild)' == 'true'"
113+
UseStandardResourceNames="$(UseStandardResourceNames)"
110114
ResourceFiles="@(NonResxWithCulture)"RootNamespace="$(RootNamespace)">
111115
<Output TaskParameter ="ManifestResourceNames" ItemName ="ManifestNonResxWithCulture" />
112116
</CreateFSharpManifestResourceName>
@@ -123,6 +127,7 @@ this file.
123127
<CreateFSharpManifestResourceName
124128
ResourceFiles="@(EmbeddedResource)"
125129
RootNamespace="$(RootNamespace)"
130+
UseStandardResourceNames="$(UseStandardResourceNames)"
126131
Condition="'%(EmbeddedResource.ManifestResourceName)' == '' and ('%(EmbeddedResource.WithCulture)' == 'false' or '%(EmbeddedResource.Type)' == 'Resx') AND '$(UsingXBuild)' == 'false'">
127132

128133
<OutputTaskParameter="ResourceFilesWithManifestResourceNames"ItemName="_Temporary" />
@@ -133,6 +138,7 @@ this file.
133138
<CreateFSharpManifestResourceName
134139
ResourceFiles="@(EmbeddedResource)"
135140
RootNamespace="$(RootNamespace)"
141+
UseStandardResourceNames="$(UseStandardResourceNames)"
136142
PrependCultureAsDirectory="false"
137143
Condition="'%(EmbeddedResource.ManifestResourceName)' == '' and '%(EmbeddedResource.WithCulture)' == 'true' and '%(EmbeddedResource.Type)' == 'Non-Resx' AND '$(UsingXBuild)' == 'false'">
138144

@@ -253,6 +259,7 @@ this file.
253259
ToolExe="$(FscToolExe)"
254260
ToolPath="$(FscToolPath)"
255261
TreatWarningsAsErrors="$(TreatWarningsAsErrors)"
262+
UseStandardResourceNames="$(UseStandardResourceNames)"
256263
Utf8Output="$(Utf8Output)"
257264
VersionFile="$(VersionFile)"
258265
VisualStudioStyleErrors="$(VisualStudioStyleErrors)"

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp