You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行dotnet应用时如何避免生成bin与obj目录?

提问原文

我正在参考官方.NET Hello World入门教程进行操作,当前项目的两个核心文件内容如下:

# main.csproj 内容
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

</Project>
// main.cs 内容
using System;

namespace myApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

我使用的是macOS系统,在存放上述两个文件的目录中执行dotnet run命令时,会自动生成obj和bin目录。请问是否有办法可以在运行应用程序时不生成这两个目录?

相关解答

  • bin和obj是.NET SDK默认的构建路径,前者存放最终编译生成的可执行文件,后者存放构建过程的临时中间文件、依赖还原的缓存。dotnet run的运行逻辑是先完成完整编译流程,再启动生成的可执行文件,默认流程下一定会在项目目录下创建这两个文件夹。
  • 如果你不想让这两个目录污染项目源码文件夹,可以通过修改项目配置,把构建路径整体重定向到其他位置:在main.csproj的PropertyGroup节点中增加两行自定义路径配置,运行时SDK就会把所有构建内容写到指定路径,不会在当前源码目录生成bin、obj:
    <BaseOutputPath>/tmp/dotnet-myapp-build/bin/</BaseOutputPath>
    <BaseIntermediateOutputPath>/tmp/dotnet-myapp-build/obj/</BaseIntermediateOutputPath>
    
  • 需要注意的是,没有参数可以让dotnet run完全跳过构建流程、不生成任何中间文件和编译产物。如果完全不想保留任何构建文件,只能绕开dotnet run的默认构建逻辑,手动编译源码后直接运行生成的二进制文件,否则强行关闭这两个目录的生成流程,会导致SDK的版本解析、依赖还原逻辑报错,无法正常运行程序。

内容的提问来源于stack exchange,提问作者user1424739

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.26 22:54:04