У меня ошибка cs0518 при сборке решения (консольное приложение .net Framework 4.6.1 и библиотека .net стандарт 2.0 для него) на jenkins (но локальная сборка без проблем) и попытка исправить это. Я нашел в журнале параметр / nostdlib + csc.exe, и это может быть причиной этой ошибки.
Ошибки только для стандартной библиотеки .net:
error CS0246: The type or namespace name 'AssemblyTitleAttribute' could not be found
error CS0518: Predefined type 'System.String' is not defined or imported
error CS0246: The type or namespace name 'System' could not be found
error CS0400: The type or namespace name 'System' could not be found in the global namespace
error CS0518: Predefined type 'System.Void' is not defined or imported
...
Я использую MSBuild.exe на jenkins, и он использует csc.exe (поэтому я не могу напрямую изменять параметры csc.exe). Я пытался изменить .csproj: <NoStdLib>false</NoStdLib>
, но / nostdlib + еще существует.
Как я могу настроить csc.exe из MSBuild.exe или решить эту проблему другим способом?
UPD csc params:
csc.exe /noconfig /unsafe- /checked- /nowarn:1701,1702,1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:TRACE;DEBUG;NETSTANDARD;NETSTANDARD2_0 /debug+ /debug:portable /filealign:512 /optimize- /out:obj\Debug\netstandard2.0\yyy.dll /target:library /warnaserror- /utf8output /deterministic+ kkk.cs "C:\Windows\TEMP\.NETStandard,Version=v2.0.AssemblyAttributes.cs" obj\Debug\netstandard2.0\bbb.AssemblyInfo.cs
libs .csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
версия nuget: v4.9.3
msbuild версия: 15.9.21.664