Как настроить csc из msbuild в командной строке? - PullRequest
0 голосов
/ 06 мая 2019

У меня ошибка 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

1 Ответ

1 голос
/ 07 мая 2019

Я исправил проблемы, изменив порядок работы конвейера.Необходимо:

1) msbuild ... \restore

2) nuget restore ...

...