我想在同一个解决方案配置两次建立相同的项目,不同的#define一些标志来切换功能。 这两个二进制文件会以不同的名称进行部署。
我知道可以工作的解决方案:
添加解决方案配置 - 但后来我需要构建解决方案的两倍,我宁愿避免。 这两个项目的配置总是会建成。
复制项目 - 但后来我不得不保持新项目时,我只想保持一个不同的配置的开销。
批量构建 - 我避免使用批量构建,因为我同时使用devenv的地方发展和MSBuild的持续集成。
任何其他的想法或建议?
我想在同一个解决方案配置两次建立相同的项目,不同的#define一些标志来切换功能。 这两个二进制文件会以不同的名称进行部署。
我知道可以工作的解决方案:
添加解决方案配置 - 但后来我需要构建解决方案的两倍,我宁愿避免。 这两个项目的配置总是会建成。
复制项目 - 但后来我不得不保持新项目时,我只想保持一个不同的配置的开销。
批量构建 - 我避免使用批量构建,因为我同时使用devenv的地方发展和MSBuild的持续集成。
任何其他的想法或建议?
只是想出一个办法做你问什么。 创建一个文件的MSBuild(我将其命名multiple.proj),并添加下面的脚本。
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Choose>
<When Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
<ItemGroup>
<ProjectToBuild Include="$(MSBuildProjectName).csproj">
<Properties>Configuration=Release</Properties>
</ProjectToBuild>
</ItemGroup>
</When>
</Choose>
<Target Name="BeforeBuild">
<Message Text="Building configuration $(Configuration)..." />
</Target>
<Target Name="AfterBuild">
<MSBuild Projects="@(ProjectToBuild)"/>
</Target>
</Project>
</type>
</this>
导入你的项目(或的csproj vbproj)的脚本:
<Import Project="..\multiple.proj" />
该脚本告诉的MSBuild到另一个设计为AfterBuild事件再次生成项目。 我用调试/发布,使例子,但你可以很容易地改变脚本来支持其他的配置,或是根据其他变量再次打造的决定。
要小心,因为你正在运行两个版本的一次,所以生成错误也很难理解。
希望这可以帮助。