当我使用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变量是什么?
我在Developer提示符VS 2017中运行这个命令,当我直接从一个普通命令提示符运行时,一切都很好:
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版本,它们并不存在于磁盘上。
发布于 2018-08-31 17:03:42
C#编译器(csc)在当前目录、-lib选项中提到的任何路径和LIB环境变量中查找引用。不幸的是,当您启动Visual命令提示符时,它会运行vcvarsall.bat,它设置了LIB环境变量,但是C++链接器也使用它来查找库(静态库)。您在问题中提到的文件夹有C++库,但没有任何托管代码。我想这是一种错误的行为。我确实看到它安装在我的机器里。

https://stackoverflow.com/questions/52115776
复制相似问题