如何构建不在 Visual Studio 解决方案中的项目?
How to build projects that aren't in the Visual Studio Solution?
有没有办法告诉 Visual Studio 构建不属于其解决方案的项目?我们一直在研究许多不同的选项,但都没有成功,例如嵌套项目、共享项目和构建事件。
示例架构:
Project A
Project B
ref Project i
ref Project ii
Project C
--------------
Solution 1
Project A
Project B
Project C
Solution 2
Project i
Project ii
现在,我无法构建解决方案 1,因为项目 B 无法构建,因为项目 i 和 ii 尚未构建。我必须切换到解决方案 2,构建它,然后 return 切换到解决方案 1,然后构建工作。这听起来不像是最好的做事方式,但我不是决定者,我正在寻找一种方法来简化流程,而无需将项目 i 和 ii 添加到解决方案本身,即使添加了一些构建事件或允许解决方案。我怎样才能做到这一点?
我们提出的解决方案是在 C# 项目中添加一个预构建目标,这些项目在解决方案之外具有项目依赖项。即,项目 B 现在包含如下内容:
<ItemGroup>
<ProjectDependency Include="..\Solution2\Project-i.csproj"/>
<ProjectDependency Include="..\Solution2\Project-ii.csproj"/>
</ItemGroup>
<PropertyGroup>
<BuildDependsOn>
BuildProjectBDependencies;
$(BuildDependsOn)
</BuildDependsOn>
</PropertyGroup>
<Target Name="BuildProjectBDependencies">
<MSBuild Projects="@(ProjectDependency)"
Properties="OutDir=$(OutputPath);
Configuration=$(Configuration)"
Targets="Build" />
</Target>
尝试构建项目 B 首先需要构建项目 i 和项目 ii,无论是在 Visual Studio 中还是使用自动构建过程。
有没有办法告诉 Visual Studio 构建不属于其解决方案的项目?我们一直在研究许多不同的选项,但都没有成功,例如嵌套项目、共享项目和构建事件。
示例架构:
Project A
Project B
ref Project i
ref Project ii
Project C
--------------
Solution 1
Project A
Project B
Project C
Solution 2
Project i
Project ii
现在,我无法构建解决方案 1,因为项目 B 无法构建,因为项目 i 和 ii 尚未构建。我必须切换到解决方案 2,构建它,然后 return 切换到解决方案 1,然后构建工作。这听起来不像是最好的做事方式,但我不是决定者,我正在寻找一种方法来简化流程,而无需将项目 i 和 ii 添加到解决方案本身,即使添加了一些构建事件或允许解决方案。我怎样才能做到这一点?
我们提出的解决方案是在 C# 项目中添加一个预构建目标,这些项目在解决方案之外具有项目依赖项。即,项目 B 现在包含如下内容:
<ItemGroup>
<ProjectDependency Include="..\Solution2\Project-i.csproj"/>
<ProjectDependency Include="..\Solution2\Project-ii.csproj"/>
</ItemGroup>
<PropertyGroup>
<BuildDependsOn>
BuildProjectBDependencies;
$(BuildDependsOn)
</BuildDependsOn>
</PropertyGroup>
<Target Name="BuildProjectBDependencies">
<MSBuild Projects="@(ProjectDependency)"
Properties="OutDir=$(OutputPath);
Configuration=$(Configuration)"
Targets="Build" />
</Target>
尝试构建项目 B 首先需要构建项目 i 和项目 ii,无论是在 Visual Studio 中还是使用自动构建过程。