Visual Studio中用于调试和发布的不同构建操作

时间:2011-10-06 08:24:16

标签: c# visual-studio-2010

我有这个实现插件架构的C#Visual Studio解决方案。在构建调试版本时,我希望将几个插件编译到主应用程序中。在构建发布版本时,我希望保留这些.cs文件。

有没有办法可以为调试和发布版本的插件文件指定不同的Build Actions?我希望它在调试版本中设置为“Compile”,在发布版本中设置为“None”。

2 个答案:

答案 0 :(得分:8)

要执行此操作,您需要手动更改.csproj,并在Condition XML元素中添加Compile 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>

答案 1 :(得分:5)

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

对于项目,您可以定义是否构建配置:在Visual Studio中,打开 Configuration Manager (菜单构建)。在左上方的组合框中,选择 Release Debug 配置,并在列表中随意设置 build 复选框。

编辑:否则您必须手动编辑.csproj文件并为要排除的项添加条件属性:

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