我要直截了当。
我正在用C#制作一个编译器,并使用Visual Studio创建它。当我将编译器构建为可执行文件时,它还会构建“运行时” dll,如何强制Visual Studio仅构建不包含dll的可执行文件? (这是一个.net核心项目)
hypec.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
</Project>
解决方案
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29509.3
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "hype", "hype.csproj", "{4653DC57-ACFF-419D-A57C-CEF0B5ECA174}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4653DC57-ACFF-419D-A57C-CEF0B5ECA174}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4653DC57-ACFF-419D-A57C-CEF0B5ECA174}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4653DC57-ACFF-419D-A57C-CEF0B5ECA174}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4653DC57-ACFF-419D-A57C-CEF0B5ECA174}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {8D8BF52E-5BB5-4F40-8365-9A6C3EBD042E}
EndGlobalSection
EndGlobal
答案 0 :(得分:2)
从这里的参考: https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0
要发布单文件可执行文件,请使用dotnet publish命令在项目中或命令行上设置PublishSingleFile:
<PropertyGroup>
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
<PublishSingleFile>true</PublishSingleFile>
</PropertyGroup>
OR
dotnet publish -r win10-x64 -p:PublishSingleFile=true