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

Commit966bd7f

Browse files
authored
fix rebuild of files (#3614)
* fix rebuild of files* don't rebuild project system
1 parent194fa62 commit966bd7f

File tree

3 files changed

+39
-29
lines changed

3 files changed

+39
-29
lines changed

‎build.cmd‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ if "%OSARCH%"=="AMD64" set SYSWOW64=SysWoW64
639639

640640
ifnot"%OSARCH%"=="x86"setREGEXE32BIT=%WINDIR%\syswow64\reg.exe
641641

642-
echo SDK environment vars from Registry
642+
echo SDK environment vars from Registry (note: ignore"ERROR: The system was unable to find ....")
643643
echo ==================================
644644
FOR /F"tokens=2* delims="%%AIN ('%REGEXE32BIT%QUERY"HKLM\Software\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.2\WinSDK-NetFx40Tools" /v InstallationFolder')DOSETWINSDKNETFXTOOLS=%%B
645645
if"%WINSDKNETFXTOOLS%"==""FOR /F"tokens=2* delims="%%AIN ('%REGEXE32BIT%QUERY"HKLM\Software\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.1\WinSDK-NetFx40Tools" /v InstallationFolder')DOSETWINSDKNETFXTOOLS=%%B

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

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -341,12 +341,21 @@ open Printf
341341

342342
letgenerateResxAndSource(filename:string)=
343343
try
344-
letprintMessage message= printfn"FSharpEmbedResourceText:%s" message
345-
letjustfilename= Path.GetFileNameWithoutExtension(filename)// .txt
346-
if justfilename|> Seq.exists(System.Char.IsLetterOrDigit>>not)then
347-
Err(filename,0, sprintf"The filename '%s' is not allowed; only letters and digits can be used, as the filename also becomes the namespace for the SR class" justfilename)
348-
letoutFilename= Path.Combine(_outputPath, justfilename+".fs")
349-
letoutXmlFilename= Path.Combine(_outputPath, justfilename+".resx")
344+
letprintMessage message= printfn"FSharpEmbedResourceText:%s" message
345+
letjustfilename= Path.GetFileNameWithoutExtension(filename)// .txt
346+
if justfilename|> Seq.exists(System.Char.IsLetterOrDigit>>not)then
347+
Err(filename,0, sprintf"The filename '%s' is not allowed; only letters and digits can be used, as the filename also becomes the namespace for the SR class" justfilename)
348+
letoutFilename= Path.Combine(_outputPath, justfilename+".fs")
349+
letoutXmlFilename= Path.Combine(_outputPath, justfilename+".resx")
350+
351+
if File.Exists(outFilename)&&
352+
File.Exists(outXmlFilename)&&
353+
File.Exists(filename)&&
354+
File.GetLastWriteTime(filename)<= File.GetLastWriteTime(outFilename)&&
355+
File.GetLastWriteTime(filename)<= File.GetLastWriteTime(outXmlFilename)then
356+
printMessage(sprintf"Skipping generation of%s and%s since up-to-date" outFilename outXmlFilename)
357+
Some(outFilename, outXmlFilename)
358+
else
350359

351360
printMessage(sprintf"Reading%s" filename)
352361
letlines= File.ReadAllLines(filename)
@@ -472,27 +481,28 @@ open Printf
472481
with get()=_hostObject
473482
andset(value)=_hostObject<- value
474483
memberthis.Execute()=
475-
letsourceItem(source:string)(originalItem:string)=
476-
letitem= TaskItem(source)
477-
item.SetMetadata("AutoGen","true")
478-
item.SetMetadata("DesignTime","true")
479-
item.SetMetadata("DependentUpon", originalItem)
480-
item:> ITaskItem
481-
letresxItem(resx:string)=
482-
letitem= TaskItem(resx)
483-
item.SetMetadata("ManifestResourceName", Path.GetFileNameWithoutExtension(resx))
484-
item:> ITaskItem
485-
letgeneratedFiles,generatedResult=
484+
485+
letgeneratedFiles=
486486
this.EmbeddedText
487-
|> Array.fold(fun(resultList,aggregateResult)item->
488-
match generateResxAndSource item.ItemSpecwith
489-
| Some(source, resx)->(((source, resx):: resultList), aggregateResult)
490-
| None->(resultList,false)
491-
)([],true)
487+
|> Array.choose(fun item-> generateResxAndSource item.ItemSpec)
488+
492489
letgeneratedSource,generatedResx=
493-
generatedFiles
494-
|> List.map(fun(source,resx)->(sourceItem source resx, resxItem resx))
495-
|> List.fold(fun(sources,resxs)(source,resx)->(source:: sources, resx:: resxs))([],[])
496-
_generatedSource<- generatedSource|> List.rev|> List.toArray
497-
_generatedResx<- generatedResx|> List.rev|> List.toArray
490+
[|for(source, resx)in generatedFilesdo
491+
letsourceItem=
492+
letitem= TaskItem(source)
493+
item.SetMetadata("AutoGen","true")
494+
item.SetMetadata("DesignTime","true")
495+
item.SetMetadata("DependentUpon", resx)
496+
item:> ITaskItem
497+
letresxItem=
498+
letitem= TaskItem(resx)
499+
item.SetMetadata("ManifestResourceName", Path.GetFileNameWithoutExtension(resx))
500+
item:> ITaskItem
501+
yield(sourceItem, resxItem)|]
502+
|> Array.unzip
503+
504+
letgeneratedResult=(generatedFiles.Length= this.EmbeddedText.Length)
505+
506+
_generatedSource<- generatedSource
507+
_generatedResx<- generatedResx
498508
generatedResult

‎vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectSystem.fsproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
<PropertyGroup>
4343
<Win32Resource>$(IntermediateOutputPath)\ProjectResources.rc.res</Win32Resource>
4444
</PropertyGroup>
45-
<TargetName="BeforeBuild">
45+
<TargetName="BeforeBuild"Condition="!Exists('$(IntermediateOutputPath)$(RCResourceFile).res')">
4646
<ExecCommand="&quot;$(ProgramFiles)\Windows Kits\8.1\bin\x86\rc.exe&quot; /fo $(IntermediateOutputPath)$(RCResourceFile).res $(RCResourceFile)"Condition="Exists('$(ProgramFiles)\Windows Kits\8.1\bin\x86\rc.exe')" />
4747
<ExecCommand="&quot;$(ProgramFiles)\Windows Kits\10\bin\x86\rc.exe&quot; /fo $(IntermediateOutputPath)$(RCResourceFile).res $(RCResourceFile)"Condition="Exists('$(ProgramFiles)\Windows Kits\10\bin\x86\rc.exe')" />
4848
<ExecCommand="&quot;$(ProgramFiles)\Windows Kits\10\bin\10.0.15063.0\x86\rc.exe&quot; /fo $(IntermediateOutputPath)$(RCResourceFile).res $(RCResourceFile)"Condition="Exists('$(ProgramFiles)\Windows Kits\10\bin\10.0.15063.0\x86\rc.exe')" />

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp