Мне нужно опубликовать свой веб-сайт с определенным файлом web.config для каждой среды, чтобы установить для переменной среды ASPNETCORE_ENVIRONMENT значение «Разработка» или «Производство».
Этого можно добиться, отправив файл web.config с таким содержимым:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\myProject.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
</system.webServer>
</configuration>
У меня есть 2 разных окружения: «Разработка» и «Производство». Я развертываю свой основной веб-сайт asp.net с помощью webploy, используя следующую команду:
msbuild myProject.csproj /p:PublishProfile=webdeploy-dev /p:DeployOnBuild=true
/p:AllowUntrustedCertificate=True /p:Password=...
В моем профиле webdeploy нет конкретных вещей
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<PublishProvider>AzureWebSite</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<ExcludeApp_Data>False</ExcludeApp_Data>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>https://my.test.com</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<MSDeployServiceURL>my.test.com</MSDeployServiceURL>
<DeployIisAppPath>my.test.com</DeployIisAppPath>
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>RemoteAgent</MSDeployPublishMethod> <!-- MsDepSvc , WMSVC, RemoteAgent -->
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<AuthType>NTLM</AuthType>
<UserName>myusername</UserName>
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
</PropertyGroup>
</Project>
Как я могу настроить свой основной проект asp.net в .csproj, профиле webdeploy или где-нибудь еще, чтобы автоматически отправлять соответствующий web.config (или изменять его содержимое) в соответствующую среду?