如何通过msbuild脚本设置winforms应用程序的输出类型

时间:2018-08-14 06:41:42

标签: c# .net winforms msbuild msbuild-task

嗨,我是ms build脚本的新手 我已经编写了一个简单的脚本来构建我的应用程序

<ItemGroup>
    <FilesToCompile Include="Form1.cs" />       
    <FilesToCompile Include="Form1.Designer.cs" />
    <FilesToCompile Include="Program.cs" />
    <FilesToCompile Include="Properties\AssemblyInfo.cs" />
    <FilesToCompile Include="Properties\Resources.Designer.cs" />
    <FilesToCompile Include="Properties\Settings.Designer.cs" />
</ItemGroup>

<ItemGroup>
    <ResourceFiles Include="Properties\Resources.resx" />
</ItemGroup>

<PropertyGroup>
    <OutputDir>bin\debug</OutputDir>

    <OutputAssembly>$(OutputDir)\TestHelloAuto.exe</OutputAssembly>
    <Optimize>false</Optimize>
</PropertyGroup>
<Target Name="Build">
    <Message Text="build MSbuild project file from scratch" />
    <MakeDir Directories="$(OutputDir)"/>
    <GenerateResource Sources="@(ResourceFiles)">
        <Output TaskParameter="OutputResources" ItemName="CompiledResources"/>
    </GenerateResource>
    <Csc Sources="@(FilesToCompile)" OutputAssembly="$(OutputAssembly)" Optimize="$(Optimize)" TargetType="exe" 
        Resources="@(CompiledResources)"/>
</Target>

我的问题是,默认情况下,创建的“ exe”具有控制台应用程序的输出类型,并在我运行exe时打开控制台。 我如何通过脚本将应用程序的输出类型更改为“ Windows应用程序” 即使我通过Visual Studio IDE将输出类型设置为Windows应用程序,也会发生这种情况。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

假设您没有IDE可以为您更改此设置,则可以在<PropertyGroup>元素内,通过添加另一个XML节点将输出程序集类型更改为所需的值:<OutputType>WinExe</OutputType>