2011-10-06 56 views
4

我有这个实现插件体系结构的C#Visual Studio解决方案。在构建调试版本时,我想要将几个插件编译到主应用程序中。在构建发布版本时,我希望这些.cs文件保持独立。Visual Studio中调试和发布版本的不同构建操作

有没有一种方法可以为调试和发布版本指定插件文件的不同构建操作?我希望它在调试版本中设置为“编译”,在发布版本中设置为“无”。

回答

4

由于插件通常位于单独的程序集中,因此我会为每个插件创建一个单独的项目。

对于项目,您可以定义是否在配置中生成:在Visual Studio中,打开配置管理器(菜单生成)。在左上角的组合框中选择版本调试配置并在列表中随意设置构建复选框。

编辑:否则,您必须手动编辑.csproj文件和状态属性添加到要排除的项目:

<Compile Condition="'$(Configuration)' == 'Debug'" Include="Program.cs" /> 
+0

你没有编辑你的答案与我的一部分? –

+0

@Simon:不,甚至没有启发。虽然我必须承认,措辞是安静的类似。 – Stephan

+0

@SimonMourier是的,但30秒后你的答案 - 我相信这是巧合。 – ANeves

6

要做到这一点,你需要手动更改的.csproj,并在Compile XML元素中添加一个Condition XML属性,该元素对应于仅在调试版本中需要的文件。像这样:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
     ... 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
     ... 
    </PropertyGroup> 
    <ItemGroup> 
    <!-- Add the Condition attribute here, on each of your debug only files 
    Pick up one of the configuration definition configuration above --> 
    <Compile Include="DebugOnlyClass1.cs" Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "/> 
    <!-- normal compilation --> 
    <Compile Include="Class1.cs" /> 
    <Compile Include="Properties\AssemblyInfo.cs" /> 
    </ItemGroup> 
    ... 
</Project> 
相关问题