Как говорит @Zivkan, это несколько странно делать по ряду причин, но если вы хотите попробовать это, я думаю, что сработает следующее:
Вы можете использовать условное выражениев вашем проекте, чтобы при сборке локально использовалась ссылка на проект, но при сборке на сборочном компьютере вы задали свойство в командной строке, чтобы использовать вместо него ссылку на пакет.
например
<Choose>
<When Condition="'$(IsBuildServer)' == 'true'">
<ItemGroup>
<PackageReference Include="A" Version="*" />
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<ProjectReference Include="relativepath\A.csproj" />
</ItemGroup>
</Otherwise>
</Choose>
И затем, при сборке на сервере сборки, просто убедитесь, что в качестве аргумента командной строки для сборки msbuild / dotnet указана -p:IsBuildServer=true
.
"*" в ссылке на пакет просто означает, что он использует последний доступный стабильный пакет, но может не соответствовать желаемому, в зависимости от того, что именно вы хотите, чтобы сервер сборки собирался.