Скомпилируйте проект C# с помощью команды csc

У меня есть проект.net 4.6.1 (с новым форматом csproj), который ссылается на проект netstandard2.0. При создании этого проекта я получаю ошибки в выводе, но не в пользовательском интерфейсе или списке ошибок Visual Studio 2017 (версия 15.4.3).

ошибка, указанная в выводе

 The type or namespace name 'Services' does not exist in the namespace

Я построил проект с msbuild /bl и использовал просмотрщик структурированного журнала, чтобы увидеть фактическую команду, которая использовалась для компиляции проекта. Команда очень длинная (более 25000 символов). Я поместил эту команду в bat-файл и выполнил ее:

 error CS0006: Metadata file 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\ref\SystemDiagnostics.StackTrace.dll' could not be found

error CS0006: Metadata file 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\ref\System.Runime.dll' could not be found

error CS0006: Metadata file 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v46.1\Facades\System.ServiceModel.Primitives.dll' could not be found

ссылки на эти библиотеки через /reference Аргумент csc, но ошибка в выходных данных имеет слегка искаженное имя:

SystemDiagnostics.StackTrace.dll вместо System.Diagnostics.StackTrace.dll

System.Runime.dll вместо System.Runtime.dll

.NETFramework \ v46.1 \ Facades \ System.ServiceModel.Primitives.dll вместо.NETFramework\v4.6.1\Facades\System.ServiceModel.Primitives.dll

Почему csc пытается найти эти неправильные искаженные имена вместо фактически ссылающихся dll?

PS: Netstandard2.0 DLL, которая содержит Services пространство имен отсутствует в /refferences длинной команды csc.

0 ответов

Другие вопросы по тегам