Странное предупреждение при использовании csc - PullRequest
0 голосов
/ 31 августа 2018

Когда я компилирую, используя csc.exe, я получаю странное предупреждение:

C:\...\>csc HelloWorld.cs /o- /target:exe
Microsoft (R) Visual C# Compiler version 2.9.0.63208 (958f2354)
Copyright (C) Microsoft Corporation. All rights reserved.

warning CS1668: Invalid search path 'C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\ucrt\x86' specified in 'LIB environment variable' -- 'directory does not exist'

Компиляция вроде бы в порядке, но что вызывает это предупреждение? Что это за LIB переменная?

Я запускаю это в Командная строка разработчика VS 2017 , когда я запускаю напрямую из командной строки vanilla, все в порядке:

C:\...\>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\csc.exe" HelloWorld.cs /target:exe /o+
Microsoft (R) Visual C# Compiler version 2.9.0.63208 (958f2354)
Copyright (C) Microsoft Corporation. All rights reserved.

Глядя на файл winsdk.bat, есть несколько ссылок на UCRT. Я думаю, что они должны включать библиотеки времени выполнения C, хотя их нет на диске, для версии 10.0.17134.0.

1 Ответ

0 голосов
/ 31 августа 2018

Компилятор C # (csc) ищет ссылки в текущем каталоге, любой путь, указанный в опции -lib, и переменную среды LIB. К сожалению, когда вы запускаете командную строку Visual Studio, она запускает vcvarsall.bat, который устанавливает переменную среды LIB, но также используется компоновщиком C ++ для поиска библиотек (статических). Папка, о которой вы упоминали в этом вопросе, имеет библиотеки C ++, но не содержит управляемого кода. Я полагаю, это неправильное поведение. Я вижу, что это устанавливается в моей машине

LIB variable set

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...