如果您的解决方案中有两个单独的项目是不可接受的,您需要考虑创建自己的 MSBuild 脚本。
下面是一个自定义 MSBuild 脚本的示例,它允许您在构建时定义自定义编译常量,然后构建应用程序的两个版本(“Full”和“Lite”):
<Project DefaultTargets="BuildAll" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BuildVersionFull>FULL</BuildVersionFull>
<BuildVersionLite>LITE</BuildVersionLite>
</PropertyGroup>
<ItemGroup>
<Projects Include="$(MSBuildProjectDirectory)\MyApp.vbproj" />
</ItemGroup>
<Target Name="BuildAll" DependsOnTargets="BuildFull;BuildLite" />
<Target Name="BuildFull">
<MSBuild Projects="@(Projects)" Properties="DefineConstants=$(BuildVersionFull);OutputPath=binFull\;BaseIntermediateOutputPath=objFull\;AssemblyName=MyApp_Full" />
</Target>
<Target Name="BuildLite">
<MSBuild Projects="@(Projects)" Properties="DefineConstants=$(BuildVersionLite);OutputPath=binLite\;BaseIntermediateOutputPath=objLite\;AssemblyName=MyApp_Lite" />
</Target>
</Project>
你需要做什么:
- 创建一个新文件并将其保存在与应用程序项目文件相同的目录中,即“MyBuild.xml”。
- 更改以反映应用程序项目文件的名称。
- 打开 Visual Studio 命令提示符并运行“msbuild”。
在您的项目中,您可以使用“FULL”和“LITE”条件编译常量来确定是否编译某些语句:
#If FULL Then
' Compile code for the "Full" version.
#End If