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

how to set output type of a winforms application through msbuild scripts

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

<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 application" 即使我通过 visual studio IDE 将我的输出类型设置为 windows 应用程序,也会发生这种情况。 任何帮助将不胜感激。

假设您没有 IDE 来为您更改它,在您的 <PropertyGroup> 元素中,您可以通过添加另一个 XML 将输出程序集类型更改为您期望的类型节点:<OutputType>WinExe</OutputType>