如何通过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
相关产品推荐
相关产品推荐

