【发布时间】:2011-10-15 13:03:53
【问题描述】:
我需要根据项目的配置将 C# 项目构建为 WinExe 或库。
我尝试了这两种方法都没有运气:
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 的所有实例更改为 Library,那么它始终是 Library。这让我觉得它正在成功地读取它们,但不是以奇怪的顺序,就是 WinExe 优先于库。
有什么想法吗?
【问题讨论】:
-
只要您的 OutputType 声明出现在任何其他声明之后,从而覆盖它,您上面的内容应该可以工作。但它也需要在任何包含基于 $(OutputType) 值的更多属性的导入语句之前
-
你想让它在 VS 中工作还是只有命令行可以?
标签: c# visual-studio msbuild csproj