csc.exe 可以强制遵守特定的 .net 标准吗?
Can csc.exe enforce conformance to a particular .net standard?
此问题专门针对 CSC,而非 msbuild。我的项目无法使用 msbuild。
如果我使用来自 .net5 SDK 的 csc.exe,我可以使用它来编译源代码并强制符合 .net 标准 2.0 吗?比如,我可以调用 csc.exe 以便使用 .net5 SDK 中但不在标准 2.0 中的 API 是编译错误吗?
我想确保我编写的 C# 代码符合 .NET 标准 2.0,并且可以在同样符合 .NET 标准 2.0 的单独构建系统中发布。
传递给 csc.exe 的选项是什么样的? csc.exe 可以这样做吗?如果不能,您可以采用什么方法来做到这一点(不使用 msbuild)?
If I am using csc.exe from a .net5 SDK
csc.exe 不是由 .net5 SDK 分发的,它是 Visual studio 的一个组件。
它安装在 :
vs 2019
C:\Program Files (x86)\Microsoft Visual Studio19\Community\MSBuild\Current\Bin\Roslyn\csc.exe
old version used by net 40
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
.NET5 SDK 正在分发 csc.dll
您可以传递 netstandard.library 的 /reference 的参数:
例子
/reference:E:\nuget\Packages\netstandard.library.0.3\build\netstandard2.0\ref\Microsoft.Win32.Primitives.dll
/reference:E:\nuget\Packages\netstandard.library.0.3\build\netstandard2.0\ref\mscorlib.dll
/reference:E:\nuget\Packages\netstandard.library.0.3\build\netstandard2.0\ref\netstandard.dll
[..... other stuff ]
注意:E:\nuget\packages是我的包配置在我机器上的路径
此问题专门针对 CSC,而非 msbuild。我的项目无法使用 msbuild。
如果我使用来自 .net5 SDK 的 csc.exe,我可以使用它来编译源代码并强制符合 .net 标准 2.0 吗?比如,我可以调用 csc.exe 以便使用 .net5 SDK 中但不在标准 2.0 中的 API 是编译错误吗?
我想确保我编写的 C# 代码符合 .NET 标准 2.0,并且可以在同样符合 .NET 标准 2.0 的单独构建系统中发布。
传递给 csc.exe 的选项是什么样的? csc.exe 可以这样做吗?如果不能,您可以采用什么方法来做到这一点(不使用 msbuild)?
If I am using csc.exe from a .net5 SDK
csc.exe 不是由 .net5 SDK 分发的,它是 Visual studio 的一个组件。 它安装在 :
vs 2019
C:\Program Files (x86)\Microsoft Visual Studio19\Community\MSBuild\Current\Bin\Roslyn\csc.exe
old version used by net 40
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
.NET5 SDK 正在分发 csc.dll
您可以传递 netstandard.library 的 /reference 的参数: 例子
/reference:E:\nuget\Packages\netstandard.library.0.3\build\netstandard2.0\ref\Microsoft.Win32.Primitives.dll
/reference:E:\nuget\Packages\netstandard.library.0.3\build\netstandard2.0\ref\mscorlib.dll
/reference:E:\nuget\Packages\netstandard.library.0.3\build\netstandard2.0\ref\netstandard.dll
[..... other stuff ]
注意:E:\nuget\packages是我的包配置在我机器上的路径