我需要根据项目的配置将C#项目构建为WinExe或Library。
我尝试过这两种方法都没有运气:
1)在一般的PropertyGroup中:
<OutputType Condition=" '$(Configuration)' == 'Release' ">WinExe</OutputType>
<OutputType Condition=" '$(Configuration)' == 'Debug' ">Library</OutputType>
2)在条件PropertyGroup中:
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<OutputType>WinExe</OutputType>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<OutputType>Library</OutputType>
</PropertyGroup>
这两种方法都不起作用,OutputType始终是WinExe。奇怪的是,如果我将WinExe的所有实例更改为库,那么它总是库。这让我觉得它正在成功地阅读它们,但要么是以奇怪的顺序,要么WinExe优先于图书馆。
有什么想法吗?
答案 0 :(得分:8)
在.csproj文件的顶部,您将有两个看起来像这样的部分:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputType>Library</OutputType>
<!-- Other properties go here -->
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputType>Exe</OutputType>
<!-- Other properties go here -->
</PropertyGroup>
将您的OutputType
元素添加到这两个条件PropertyGroup
部分,并确保删除所有其他OutputType
元素 - 我刚刚对其进行了测试,并且它完全符合您的要求对
是的,这与你已经完成的非常类似,但我知道上述方法有效,因为我刚刚尝试过 - 我唯一的猜测就是你构建中其他地方的东西弄乱了。