根据项目配置更改csproj OutputType

我需要根据项目的配置将C#项目构建为WinExe或Library。

我试过这两种方法都没有运气:

1)在一般PropertyGroup中:

WinExe Library

2)在条件PropertyGroup中:

WinExe

Library

这些方法都不起作用,OutputType始终是WinExe。 奇怪的是,如果我将WinExe的所有实例更改为库,那么它总是库。 这让我觉得它正在成功地阅读它们,但要么是以奇怪的顺序,要么WinExe优先于图书馆。

有任何想法吗?

在.csproj文件的顶部,您将有两个看起来像这样的部分:

  Library    Exe   

OutputType元素添加到这两个条件PropertyGroup部分,并确保删除所有其他OutputType元素 – 我刚刚测试它,它完全符合您的要求。

是的,这与你已经完成的非常类似,但我知道上述方法有效,因为我刚尝试过 – 我唯一的猜测就是你构建的其他地方的东西搞乱了。