Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio中调试和发布生成的不同生成操作_C#_Visual Studio 2010 - Fatal编程技术网

C# Visual Studio中调试和发布生成的不同生成操作

C# Visual Studio中调试和发布生成的不同生成操作,c#,visual-studio-2010,C#,Visual Studio 2010,我有一个C#Visual Studio解决方案,它实现了一个插件架构。在构建调试构建时,我希望将几个插件编译到主应用程序中。在构建发布版本时,我希望不要使用这些.cs文件 有没有一种方法可以为调试和发布版本的插件文件指定不同的构建操作?我希望在调试版本中将其设置为“Compile”,在发布版本中将其设置为“None”。由于插件通常位于单独的程序集中,因此我将为每个插件创建单独的项目 对于项目,可以定义是否在配置中生成:在Visual Studio中打开配置管理器(菜单“生成”)。在左上角的组合框

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


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

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

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

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

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

要执行此操作,您需要手动更改.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>

...
...
...

@Simon:不,甚至没有灵感。虽然我必须承认,措辞非常相似。@SimonMourier是的,但在你回答30秒后——我相信这是巧合。