Я пытаюсь запустить dotnet test
в DevOps Azure, но получаю эту ошибку:
ControllerTests / v1Tests / FooTests / DetailsAsyncTests.cs (241,64): ошибка CS8107: функция «литерал по умолчанию» недоступна в C # 7.0. Пожалуйста, используйте языковую версию 7.1 или выше.
Это начало моего .csproj
файла ..
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<LangVersion>7.3</LangVersion>
<PackageId><snipped></PackageId>
<Version>0.0.0</Version>
</PropertyGroup>
...
и это начало моего .yml
файла ..
name: $(Year:yyyy).$(Month).$(DayOfMonth).$(Rev:r)
pool:
vmImage: 'Ubuntu 16.04'
variables:
buildConfiguration: 'Release'
....
steps
<snip>
- script: |
dotnet test tests/snip/foo1.csproj --configuration $(buildConfiguration) -p:Version=$(Build.BuildNumber)
dotnet test tests/snip/foo2.csproj --configuration $(buildConfiguration) -p:Version=$(Build.BuildNumber)
dotnet test tests/snip/foo3.csproj --configuration $(buildConfiguration) -p:Version=$(Build.BuildNumber)
displayName: 'dotnet test'
...
Я также пробовал <LangVersion>latest</LangVersion>
в .csproj
.
Я трижды проверил, что в файле проекта есть <LangVersion>
, где тест проверяется.
Обновление
Так что, похоже, у меня это возможно работает, но я до сих пор не знаю, является ли это «взломанным» решением или правильным решением. Тем не менее, я все еще не уверен , почему эта проблема происходит.
Я добавил langver
в качестве свойства msbuild:
dotnet test tests/snip/foo2.csproj
--configuration $(buildConfiguration)
-p:Version=$(Build.BuildNumber)
-p:langversion=latest
Обратите внимание на последний параметр ...