2011-10-06 55 views
4

我有這個實現插件體系結構的C#Visual Studio解決方案。在構建調試版本時,我想要將幾個插件編譯到主應用程序中。在構建發佈版本時,我希望這些.cs文件保持獨立。Visual Studio中調試和發佈版本的不同構建操作

有沒有一種方法可以爲調試和發佈版本指定插件文件的不同構建操作?我希望它在調試版本中設置爲「編譯」,在發佈版本中設置爲「無」。

回答

4

由於插件通常位於單獨的程序集中,因此我會爲每個插件創建一個單獨的項目。

對於項目,您可以定義是否在配置中生成:在Visual Studio中,打開配置管理器(菜單生成)。在左上角的組合框中選擇版本調試配置並在列表中隨意設置構建複選框。

編輯:否則,您必須手動編輯.csproj文件和狀態屬性添加到要排除的項目:

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

你沒有編輯你的答案與我的一部分? –

+0

@Simon:不,甚至沒有啓發。雖然我必須承認,措辭是安靜的類似。 – Stephan

+0

@SimonMourier是的,但30秒後你的答案 - 我相信這是巧合。 – ANeves

6

要做到這一點,你需要手動更改的.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> 
相關問題