将 Visual Studio 中多个项目的输出聚合到一个文件夹中

问题描述 投票:0回答:1

我有一个包含多个相关控制台应用程序的解决方案。所有应用程序都旨在分布到同一台计算机上,并且它们都具有一些共同的依赖关系。这与我所拥有的类似:

Solution
  - ConsoleApp1
    - source code
    - dependency1
    - dependency2
  - ConsoleApp2
    - source code
    - dependency1
    - dependency3

当我构建时,我得到这样的信息:

Solution
  - ConsoleApp1
    - source code
    - dependency1
    - dependency2
    - bin
      - ConsoleApp1.exe
      - dependency1
      - dependency2
  - ConsoleApp2
    - source code
    - dependency1
    - dependency3
    - bin
      - ConsoleApp2.exe
      - dependency1
      - dependency3

相反,我想要的是:

- CommonDir
    - bin
      - ConsoleApp1.exe
      - ConsoleApp2.exe
      - dependency1
      - dependency1
      - dependency3

我尝试创建一个引用其他项目的空项目,但是,这没有产生预期的结果。我知道我可以创建一个使用 dotnet 构建每个可执行文件的脚本,并根据需要复制文件。但是,我想必须有一种“正确”的方法来做到这一点。

该项目包含 C# 应用程序。

感谢您的帮助

.net visual-studio msbuild
1个回答
0
投票

由于VS使用MSBuild将解决方案中的C#项目一一构建,所以需要修改每个.csproj的内容。

像这样:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <OutputPath>C:\CommonDir\bin\</OutputPath>
  </PropertyGroup>
  
</Project>

构建整个解决方案后:

© www.soinside.com 2019 - 2024. All rights reserved.