我们正在尝试使用.NET Core任务从VSTS中的Visual Studio解决方案构建一个项目。我们能够“ dotnet构建”该项目。但是,当我们尝试“ dotnet发布”时,它将尝试发布解决方案中的所有项目。即使我们使用“ dotnet custom”,它也会尝试发布所有项目。
是否有一种方法可以使用.NET Core任务仅发布一个或多个已构建的项目?还是我们应该运行自定义命令行任务?
原因是我们有一个不会构建的项目,我们不需要/想要发布它。因此,我们希望构建和发布一个项目,而不是所有项目。
答案 0 :(得分:4)
您可以使用dotnet publish <Path to .csproj>
。这样只会构建和发布指定的项目以及它所依赖的项目。
要使用命令“发布”在“ .Net Core”任务中指定项目,您必须取消选中“发布Web项目”。
答案 1 :(得分:0)
这取决于每个项目的项目依赖关系。
换句话说,有一些配置可以说“哪个项目需要先构建,以便成功构建目标项目。”
如果使用的是Visual Studio,请右键单击解决方案,然后单击“属性”。
在此示例中,我的目标运行是TestAngular.Web.Host
,并且要构建该项目,需要首先构建TestAngular.Web.Core
。
如果您使用其他IDE,只需找到您的目录,在我的情况下为src\TestAngular.Web.Host
并修改TestAngular.Web.Host.csproj
文件
<Project Sdk="Microsoft.NET.Sdk.Web">
...
<ItemGroup>
<ProjectReference Include="..\TestAngular.Web.Core\TestAngular.Web.Core.csproj" />
</ItemGroup>
...
</Project Sdk="Microsoft.NET.Sdk.Web">
按照相同的语法在此处添加或删除不需要的项目
答案 2 :(得分:0)
答案 3 :(得分:0)
另一种解决方案是在csproj中设置IsPublishable
。
我通常在它是一个单元测试项目的情况下执行此操作,否则,如果您为解决方案文件运行dotnet publish
,则不需要发布它。
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<IsPackable>false</IsPackable>
<IsPublishable>false</IsPublishable >
<Configurations>prod;stage;dev</Configurations>
<Platforms>AnyCPU</Platforms>
</PropertyGroup>