我正在尝试通过 Azure DevOps 构建一个 dotnet 核心应用程序。我希望我的程序集使用内部版本号进行版本控制。
在 .csproj 文件中:
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
<Version>0.0.1</Version>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
yaml 构建管道包含:
trigger:
branches:
include:
- master
pool:
name: 'Hosted Windows 2019 with VS2019'
#vmImage: 'ubuntu-latest'
variables:
buildConfiguration: 'Release'
Version.Revision: $[counter(format('{0:yyyyMMdd}', pipeline.startTime), 0)]
VersionMajor: 0
VersionMinor: 1
name: '$(VersionMajor).$(VersionMinor).$(Date:yy)$(DayOfYear).$(Version.Revision)'
steps:
- task: DotNetCoreInstaller@0
inputs:
version: '2.2.300'
- script: dotnet build --configuration Release /p:Version=$(Build.BuildNumber)
displayName: 'dotnet build $(buildConfiguration) $(Build.BuildNumber)'
Run Code Online (Sandbox Code Playgroud)
在 Azure Devops 构建日志中,该命令似乎选择了正确的版本:
dotnet build --configuration Release /p:Version=0.1.19185.10
Run Code Online (Sandbox Code Playgroud)
但是当我下载工件并验证 dll 时,它们仍然包含版本号 0.0.1
在本地执行此命令会在 dll 中添加版本号。那么,为什么不通过 Azure DevOps …
如何处理JSON文件中的缺失数据?使用数据列表,您只需使用地图功能即可.但是对象怎么样呢
说我有样本数据:
{
"Person":{
"FirstName":"John",
"LastName":"Doe",
"Age": 42,
"Address": {
"Street": "SomeStreet",
"City" : "Some City"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的实际数据如下:
{
"Person":{
"FirstName":"John",
"Age": 42
}
}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何使地址可选:
type personJson = JsonProvider<"Data/personSample.json">
let personData = testJson.Load("Data/personData.json")
let address = personData.Person.Addres // gives an exception
Run Code Online (Sandbox Code Playgroud)
同时尝试将其转换为可选的失败,请让p = personData.Person.Address |> Option.ofObj
System.Exception:由于早期错误,无法完成操作类型'JsonProvider <...> .Address'在2,35处没有'null'作为正确的值
我无法想象我应该用一些丢失的数据更改每个文件的代码.
那我该怎么做才能解决这个问题呢?