我有这个实现插件架构的C#Visual Studio解决方案。在构建调试版本时,我希望将几个插件编译到主应用程序中。在构建发布版本时,我希望保留这些.cs文件。
有没有办法可以为调试和发布版本的插件文件指定不同的Build Actions?我希望它在调试版本中设置为“Compile”,在发布版本中设置为“None”。
答案 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" />