.net core 为什么在编译.NET核心控制台应用程序时,我们会同时使用dll和exe文件?
我注意到,在编译.NET核心控制台应用程序时,在Windows上创建了带有项目名称的dll和exe文件。为什么呢?在完整的.Net framework中,只会创建exe文件。在.Net Core 3.0之前,只创建了.net core 为什么在编译.NET核心控制台应用程序时,我们会同时使用dll和exe文件?,.net-core,console-application,.net Core,Console Application,我注意到,在编译.NET核心控制台应用程序时,在Windows上创建了带有项目名称的dll和exe文件。为什么呢?在完整的.Net framework中,只会创建exe文件。在.Net Core 3.0之前,只创建了dll(尽管您仍然可以进行依赖于平台的单个文件构建)。在这些情况下,您必须使用命令dotnetmyproject.dll启动程序 在.NETCore3.0中,他们添加了exe,它实际上仍然只是上述命令的包装器。在其他操作系统上,它也会创建一个可执行文件,它只是将其命名为MyProje
dll
(尽管您仍然可以进行依赖于平台的单个文件构建)。在这些情况下,您必须使用命令dotnetmyproject.dll
启动程序
在.NETCore3.0中,他们添加了exe
,它实际上仍然只是上述命令的包装器。在其他操作系统上,它也会创建一个可执行文件,它只是将其命名为MyProject
,而不是MyProject.exe
如果人们有仍然生成dotnet命令的旧脚本,此设置不会破坏它们,但是如果您只想使用
exe
,您也可以这样做。在.Net Core 3.0之前,只创建了dll
(尽管您仍然可以生成依赖于平台的单个文件)。在这些情况下,您必须使用命令dotnetmyproject.dll
启动程序
在.NETCore3.0中,他们添加了exe
,它实际上仍然只是上述命令的包装器。在其他操作系统上,它也会创建一个可执行文件,它只是将其命名为MyProject
,而不是MyProject.exe
如果人们使用的旧脚本仍然使用dotnet命令,此设置不会破坏它们,但如果您只想使用
exe
,您也可以这样做。官方文档中是否有描述这种行为的地方?@mark我想这可能就是您想要的,也许您可以回答?@mark for.net core您可以将所有包元数据放在csproj文件中,而不是创建单独的nuspec文件。然后可以使用dotnetpack命令生成包。此外,还可以将csproj中的属性设置为Library。这将删除exe。最后,您可能不需要将netcoreappx.y作为nuget包的目标。实际上,以netstandard2.0或netstandard2.1为目标更好,因为这样您的包就可以与任何兼容的框架一起工作。官方文档中是否有描述这种行为的地方?@mark我想这可能就是您想要的,也许您可以回答?@mark for.net core您可以将所有包元数据放在csproj文件中,而不是创建单独的nuspec文件。然后可以使用dotnetpack命令生成包。此外,还可以将csproj中的属性设置为Library。这将删除exe。最后,您可能不需要将netcoreappx.y作为nuget包的目标。实际上,以netstandard2.0或netstandard2.1为目标更好,因为这样您的包就可以与任何兼容的框架一起工作。