Без вашей ConfigurationBuilder
реализации и способа передачи IConfiguration
вашим зависимостям.Например, являются ли они автономными приложениями?
Для другого приложения вы можете достичь желаемого результата, выполнив следующие действия:
- В файле appsettings.json в решении откройте свойства.
- Сборка в выходной каталог.
Когда вы находитесь в Visual Studio, приложение должно читать ваш appsettings.json без проблем.Для своего решения я создал каталог с именем Configuration с двумя подкаталогами Development и Production.Теперь при сборке Visual Studio она должна соответствовать указанной выше конфигурации, но для создания отдельного каталога Build, который не является частью вашего бина, я использовал скрипт PowerShell.
Param($configuration="Development")
if($configuration.ToUpper().StartsWith("P")) {
$configuration="Production"
} else {
$configuration="Development"
}
if((Test-Path .\Build)) {
Remove-Item -r -fo .\Build
}
New-Item -ItemType Directory .\Build | Out-Null
dotnet publish --configuration Release --runtime win81-x64 --verbosity Quiet --self-contained true
Copy-Item -r .\bin\Release\netcoreapp2.1\win81-x64\publish\* .\Build\
Remove-Item .\Build\*.pdb
Remove-Item .\Build\appsettings.json
Copy-Item .\Configuration\$configuration\appsettings.json .\Build\
Copy-Item ".\Configuration\Deployment Resources\Script\*.ps1" .\Build\
Copy-Item ".\Configuration\Deployment Resources\Task\*.xml" .\Build\
echo "`n`n"
Write-Host "╭ ─────────────────────────── ╮"
Write-Host " $configuration "
Write-Host "╰ ─────────────────────────── ╯"
echo "`n`n"
Для сборки я перехожу к своемурешение в командной строке и просто выполните: .\Build.ps1 Production
или .\Build.ps1
, и это создаст для меня действительный каталог сборки.Вы можете игнорировать некоторые другие компоненты, так как они предназначены для запланированной задачи, установки сценариев и т. Д., Которые мы также включаем, поэтому при использовании сценария развертывания все переносится на удаленный сервер.
Я изменю ответкак только вы предоставите больше информации о том, как другие ваши проекты связаны с вашим веб-решением.