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

如何通过dotnet CLI传递csc的/main参数给msbuild指定启动对象?

问题描述

我有一个包含两个CS文件的控制台应用:

Program1.cs

using System;

namespace MyConsoleApp
{
    class Program1
    {
        pubic static void Main()
        {
            Console.WriteLine("From Program1");
        }
    }
}

Program2.cs

using System;

namespace MyConsoleApp
{
    class Program2
    {
        pubic static void Main()
        {
            Console.WriteLine("From Program2");
        }
    }
}

执行dotnet run时出现以下错误:

error CS0017: Program has more than one entry point defined. Compile with /main to specify the type that contains the entry point

我了解到/main是csc的参数,而非msbuild的参数,通过msbuild指定启动类型需在CSPROJ文件中设置MainEntryPoint或StartupObject。但我希望通过dotnet CLI动态指定启动对象,尝试执行dotnet run msbuild /main:MyConsoleApp.Program1仍出现相同错误。

补充说明

这并非重复问题,因为/p参数并未解决问题:

$ dotnet build /p:StartupObject=MyConsoleApp.Program2
Microsoft (R) Build Engine version 16.11.3+5d7fe36cf for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  Restored C:\Users\MyConsoleApp\MyConsoleApp.csproj (in 86 ms).
  MyConsoleApp -> C:\Users\MyConsoleApp\bin\Debug\netcoreapp3.1\MyConsoleApp.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:01.76
$ dotnet run
From Program1

请问如何通过dotnet CLI将csc的/main参数传递给msbuild?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:55:20