我有一个包含多个相关控制台应用程序的解决方案。所有应用程序都旨在分布到同一台计算机上,并且它们都具有一些共同的依赖关系。这与我所拥有的类似:
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# 应用程序。
感谢您的帮助
由于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>
构建整个解决方案后: