当我有一个C#控制台应用程序foo时,我用

msbuild /p:Configuration=Debug /p:Platform="Any CPU"

有时,生成的可执行文件是

bin\Any CPU\Debug\net7.0\foo.exe" 

有时候

bin\Debug\net7.0\foo.exe

为什么?

注:

  • 任何项目文件中都没有OutputPath元素.

  • 我不是问如何改变这种行为,而是为什么它现在是这样的.

推荐答案

感谢鲁弗爵士的https://github.com/dotnet/sdk/issues/.sln88英镑,这被证明是答案的线索:这取决于MSBuild是从.sln还是.csproj文件工作.如果存在,则默认为前者,这意味着它会为两个文件位于同一目录的单项目解决方案生成不同的结果,而不是多项目解决方案.

Csharp相关问答推荐

如何创建ASP.NET Core主机并在同一进程中运行请求

System. InvalidOperationException:无法将数据库中的字符串值i转换为映射的ItemType枚举中的任何值''''

使用命令初始化可绑定属性

有没有办法使.NET 6应用程序在特定的.NET 6运行时版本上运行

无法通过绑定禁用条目

单行上的ReSharper数据标注

.NET SDK包中的官方C#编译器在哪里?

异步任务导致内存泄漏

集合表达式没有目标类型

VS 2022 for ASP.NET Core中缺少自定义项模板

如何在我的C#应用程序中设置带有reactjs前端的SignalR服务器?

如何防止Visual Studio断点以红色突出显示到整行?

使用CollectionView时在.NET Maui中显示数据时出现问题

有条件地定义预处理器指令常量

如何从Azure函数使用Graph API(SDK 5.35)中的[FindMeetingTimes]

C#如何获取字符串中引号之间的文本?

Linq SELECT的多条指令

如何在C# WinForm控件中使用Windows 10/11的黑暗主题?

我可以阻止类型上的Object.ToString()吗?

CsvHelper在第二次迭代时抛出System.ObjectDisposedException