빌드 시간 또는 자동 빌드 번호를 제공하는 함수를 DLL에 포함하려고합니다. 많은 C# 예제가 있지만 F #에 대해서는 아직 보지 못했습니다. 가능한 경우 외부 패키지 또는 C# 레이어없이이 작업을 수행하고 싶습니다.F #의 빌드 번호
3
A
답변
2
마지막을 수정
다음은
let lastModified() =
System.Reflection.Assembly.GetExecutingAssembly().Location
|> System.IO.File.GetLastWriteTime
버전에 당신에게 기능이있는 어셈블리의 마지막 수정 시간을 말할 것이다
빌드 번호를 얻으려면, 당신 먼저 F # 프로그램을 기본 템플릿에 추가해야합니다.이 파일을 프로젝트의 F # 소스 파일에 추가하십시오 (예 : Assemblyinfo.fs)
module AssemblyInfo
open System.Reflection
[<assembly: AssemblyVersion("1.0.*")>]
()
그러나 버전 1.0. *은 C# (2010)에서와 같이 작동하지 않으므로 개정판이 아닌 미성년자가 자동 증가합니다. 1.0.0. *은 개정을 증가 시키지만 미성년은 증가시키지 않습니다. 다음과 같이
그런 다음 어셈블리 버전을 읽을 수 있습니다
let version() =
System.Reflection.Assembly
.GetExecutingAssembly()
.GetName()
.Version
2
여기 있습니다. 코드를 here에서
module MyModule
type BuildTime =
static member RetrieveLinkerTimestamp() =
let c_PeHeaderOffset = 60
let c_LinkerTimestampOffset = 8
let filePath = System.Reflection.Assembly.GetCallingAssembly().Location
let b : byte array = Array.zeroCreate 2048
use s = new System.IO.FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read)
s.Read(b, 0, 2048) |> ignore
let i = System.BitConverter.ToInt32(b, c_PeHeaderOffset)
let secondsSince1970 = System.BitConverter.ToInt32(b, i + c_LinkerTimestampOffset)
let dt = System.DateTime(1970, 1, 1, 0, 0, 0)
let dt1 = dt.AddSeconds(float(secondsSince1970))
dt1.AddHours(float(System.TimeZone.CurrentTimeZone.GetUtcOffset(dt1).Hours))
코드로 이식했습니다. 작동하지 않지만 작동합니다. 다른 .NET 코드에서 쉽게 액세스 할 수 있도록 형식으로 작성했습니다.
관련 문제
- 1. F 번호
- 2. F 번호 : F #에서 목록
- 3. 제대로 하스켈에서 F 번호
- 4. F 번호 어레이 flatmap
- 5. F 번호 전달 파이프
- 6. F 번호 - 기능 순서
- 7. F 번호 차별 조합은
- 8. F 번호 : 재귀 트리
- 9. F 번호 - AsyncSeq -
- 10. F 번호 정적 멤버
- 11. F 번호 기능 간결
- 12. F 번호 : IEnumerator를
- 13. leftOuterJoin와`.DefaultIfEmpty()`F 번호
- 14. Jenkins 빌드 번호 문제
- 15. TeamCity 빌드 번호 대 Ant 빌드 번호 작업
- 16. TFS 빌드 번호 형식
- 17. 진수 변환 F # 스크립트 F # 대화에서 F 번호
- 18. F #의 동적 속성에 액세스
- 19. F 번호 -이 코드는 나를
- 20. F 번호 체크를 arithmetics 범위
- 21. grep -f : 패턴 번호 인쇄
- 22. F 번호 유형 inferrence 문제
- 23. F 번호 - 특정 민첩 도구
- 24. F 번호 : 차별 노동 조합
- 25. F 번호 - int 형 운영자 ..-
- 26. F 번호 기능은 매개 변수
- 27. F 번호 꼬리 재귀 호출
- 28. 배열 또는 목록 F 번호
- 29. F 번호 - 이상한 FileNotFound 예외
- 30. F 번호 : 상호 작용하는 F #의 목록 <'T>에서 상속 할 수 없습니다