我有一个使用插件架构的C# Visual Studio解决方案。当构建调试版本时,我希望将一些插件编译到主应用程序中。当构建发布版本时,我希望这些.cs文件保持不变。
是否有一种方法可以为调试和发布版本的插件文件指定不同的构建操作?我希望在调试构建中设置为“编译”,在发布构建中设置为“无”。
是否有一种方法可以为调试和发布版本的插件文件指定不同的构建操作?我希望在调试构建中设置为“编译”,在发布构建中设置为“无”。
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中打开“配置管理器”(菜单生成)。在左上角的组合框中选择“发布”或“调试”配置,并在列表中任意设置“构建”复选框。
编辑:否则,您必须手动编辑.csproj
文件,并向要排除的项添加条件属性:
<Compile Condition="'$(Configuration)' == 'Debug'" Include="Program.cs" />