none
environmentVariable in web.config durante la pubblicazione RRS feed

  • Domanda

  • Buonasera a tutti, in un mio progetto .net core 3.1 ho notato che pubblicando su azure visual studio pubblica anche un web.config con dentro <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />

    Questo va in conflitto con la variabile d'ambiente impostata in Azure (che è production) e vince quella del web.config con il risultato che l'app non và

    Da dove si inventa visual studio di inserire lui l'ambiente ? si può disabilitare ?

    grazie a tutti

    Alessandro

    sabato 18 aprile 2020 19:30

Risposte

  • Buongiorno, 

    Prima di tutto, questo sarebbe il fonte ufficiale - https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-3.1

    Oltre alle opzioni sopra menzionate, ci sono un paio di altre soluzioni.


    1. Modifica del file di progetto (.CsProj)


    MSBuild supporta la proprietà EnvironmentName che può aiutare a impostare la variabile di ambiente corretta in base all'ambiente che si desidera distribuire. Il nome dell'ambiente verrà aggiunto in web.config durante la fase di pubblicazione.


    Basta aprire il file di progetto (* .csProj) e aggiungere il seguente XML.

    <!-- Custom Property Group added to add the Environment name during publish
      The EnvironmentName property is used during the publish for the Environment variable in web.config
      -->
      <PropertyGroup Condition=" '$(Configuration)' == '' Or '$(Configuration)' == 'Debug'">
        <EnvironmentName>Development</EnvironmentName>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)' != '' AND '$(Configuration)' != 'Debug' ">
        <EnvironmentName>Production</EnvironmentName>
      </PropertyGroup>


    Il codice sopra aggiungerebbe il nome dell'ambiente come Development, sviluppo per debug o se non viene specificata alcuna configurazione. Per qualsiasi altra configurazione, il nome dell'ambiente sarebbe Production nel file web.config generato. Maggiori dettagli qui


    2. Aggiunta della proprietà

    <PropertyGroup>
      <EnvironmentName>Development</EnvironmentName>
    </PropertyGroup>

    EnvironmentName nei profili di pubblicazione.

    È possibile aggiungere la proprietà <EnvironmentName> anche nel profilo di pubblicazione. Apri il file del profilo di pubblicazione che si trova in Properties / PublishProfiles / {profilename.pubxml} Questo imposterà il nome dell'ambiente in web.config quando il progetto sarà pubblicato.

    3. Opzioni della riga di comando utilizzando dotnet publishing
    Inoltre, possiamo passare la proprietà EnvironmentName come opzione della riga di comando al comando dotnet publishing. Il comando seguente includerebbe la variabile di ambiente come Sviluppo nel file web.config.

    dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development


    • Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.

    martedì 21 aprile 2020 07:53
    Moderatore

Tutte le risposte

  • Buongiorno, 

    Prima di tutto, questo sarebbe il fonte ufficiale - https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments?view=aspnetcore-3.1

    Oltre alle opzioni sopra menzionate, ci sono un paio di altre soluzioni.


    1. Modifica del file di progetto (.CsProj)


    MSBuild supporta la proprietà EnvironmentName che può aiutare a impostare la variabile di ambiente corretta in base all'ambiente che si desidera distribuire. Il nome dell'ambiente verrà aggiunto in web.config durante la fase di pubblicazione.


    Basta aprire il file di progetto (* .csProj) e aggiungere il seguente XML.

    <!-- Custom Property Group added to add the Environment name during publish
      The EnvironmentName property is used during the publish for the Environment variable in web.config
      -->
      <PropertyGroup Condition=" '$(Configuration)' == '' Or '$(Configuration)' == 'Debug'">
        <EnvironmentName>Development</EnvironmentName>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)' != '' AND '$(Configuration)' != 'Debug' ">
        <EnvironmentName>Production</EnvironmentName>
      </PropertyGroup>


    Il codice sopra aggiungerebbe il nome dell'ambiente come Development, sviluppo per debug o se non viene specificata alcuna configurazione. Per qualsiasi altra configurazione, il nome dell'ambiente sarebbe Production nel file web.config generato. Maggiori dettagli qui


    2. Aggiunta della proprietà

    <PropertyGroup>
      <EnvironmentName>Development</EnvironmentName>
    </PropertyGroup>

    EnvironmentName nei profili di pubblicazione.

    È possibile aggiungere la proprietà <EnvironmentName> anche nel profilo di pubblicazione. Apri il file del profilo di pubblicazione che si trova in Properties / PublishProfiles / {profilename.pubxml} Questo imposterà il nome dell'ambiente in web.config quando il progetto sarà pubblicato.

    3. Opzioni della riga di comando utilizzando dotnet publishing
    Inoltre, possiamo passare la proprietà EnvironmentName come opzione della riga di comando al comando dotnet publishing. Il comando seguente includerebbe la variabile di ambiente come Sviluppo nel file web.config.

    dotnet publish -c Debug -r win-x64 /p:EnvironmentName=Development


    • Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.

    martedì 21 aprile 2020 07:53
    Moderatore
  • Ok grazie, farò delle prove

    Alessandro

    venerdì 24 aprile 2020 06:01