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

本文关键字:构建 操作 同构 布构建 Studio 用于 调试 Visual | 更新日期: 2023-09-27 18:10:38

我有这个c# Visual Studio解决方案,它实现了一个插件架构。在构建调试构建时,我希望将几个插件编译到主应用程序中。当构建一个发布版本时,我希望这些。cs文件被单独留下。

是否有一种方法可以为调试和发布构建的插件文件指定不同的构建操作?我希望它被设置为"编译"在调试构建和"无"在发布构建。

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

要做到这一点,您需要手动更改.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>

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

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

编辑:否则你必须手动编辑.csproj文件,并添加一个条件属性到你想要排除的项目:

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