Uso de ClickOnce en Visual Basic y .NET 8

Daniel Contarino 0 Puntos de reputación
2024-11-27T20:37:26.1966667+00:00

Hace algún tiempo que desarrollo pequeñas aplicaciones con Visual Studio. Las distribuyo con publicaciones hechas con ClickOnce, y uso la opción de Descargar desde la misma ubicación que mi aplicación para los Requisitos previos. Por ejemplo, para usar .NET 4.8.1, en la carpeta C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX481 descargué el archivo NDP481-x86-x64-AllOS-ENU.exe y el correspondiente de idioma. ClickOnce funciona perfectamente y me permite instalar mi aplicación aunque el cliente no tenga acceso a Internet.

Pero me ha resultado imposible hacerlo para .NET 8.0.11. Tengo el error: Para habilitar la opción "Descargar los requisitos previos desde la misma ubicación que mi aplicación" en el cuadro de diálogo Requisitos previos, debe descargar el archivo 'net8desktopruntime_x64\windowsdesktop-runtime-8.0.11-win-x64.exe' para el elemento 'Entorno de ejecución de escritorio de .NET 8.0.11 (x64)' al equipo local. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkId=616018.

Creé la carpeta C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\net8desktopruntime_x64, descargué windowsdesktop-runtime-8.0.11-win-x64.exe, pero sigo teniendo el mismo error.

Me falta product.xml, que no pude ubicar por ningún lado, colocando un archivo sugerido por Copilot.

Cuál es el problema? Es tan diferente el uso de .NET 8? Debo indicar en algún lado dónde ClickOnce encuentra el archivo?

Uso W11 home actualizado y la última versión de Visual Studio 2022

Muchas gracias

VB
VB
Un lenguaje de programación orientado a objetos desarrollado por Microsoft que se implementa en .NET Framework. Anteriormente se conocía como .NET de Visual Basic.
24 preguntas
0 comentarios No hay comentarios
{count} votos

4 respuestas

Ordenar por: Muy útil
  1. Jonathan Pereira Castillo 10,505 Puntos de reputación Proveedor de Microsoft
    2024-11-27T21:20:30.5066667+00:00

    ¡Hola Daniel Contarino!

    Bienvenido a Microsoft Q&A.

    Entiendo tu frustración con la configuración de ClickOnce para .NET 8.0.11. Aquí hay algunos pasos que pueden ayudarte a resolver el problema:

    Verifica la estructura de carpetas y archivos: Asegúrate de que la estructura de carpetas y los archivos necesarios estén correctamente ubicados. Deberías tener algo similar a esto:

    C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\net8desktopruntime_x64

    ├── windowsdesktop-runtime-8.0.11-win-x64.exe

    ├── product.xml

    └── package.xml

    Archivo product.xml: Si no tienes el archivo product.xml, puedes crear uno basado en el siguiente ejemplo:

    <Product
        xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
        ProductCode="net8desktopruntime_x64">
        <PackageFiles>
            <PackageFile Name="windowsdesktop-runtime-8.0.11-win-x64.exe"/>
        </PackageFiles>
        <Commands>
            <Command PackageFile="windowsdesktop-runtime-8.0.11-win-x64.exe"
                     Arguments=" /quiet /norestart">
                <InstallConditions>
                    <BypassIf Property="DotNet8DesktopRuntimeInstalled" Compare="ValueGreaterThanOrEqualTo" Value="8.0.11"/>
                </InstallConditions>
                <ExitCodes>
                    <ExitCode Value="0" Result="Success"/>
                    <ExitCode Value="3010" Result="SuccessReboot"/>
                    <ExitCode Value="1641" Result="SuccessReboot"/>
                    <ExitCode Value="1603" Result="Fail"/>
                </ExitCodes>
            </Command>
        </Commands>
    </Product>
    

    Archivo package.xml: Asegúrate de tener también un archivo package.xml similar a este:

    <Package
        xmlns="http://schemas.microsoft.com/developer/2003/01/bootstrapper"
        Name="DisplayName"
        Culture="Culture">
        <Strings>
            <String Name="DisplayName">.NET 8.0.11 Desktop Runtime</String>
            <String Name="Culture">en</String>
        </Strings>
    </Package>
    

    Configuración en Visual Studio: En Visual Studio, asegúrate de que la opción "Descargar los requisitos previos desde la misma ubicación que mi aplicación" esté seleccionada y que el nombre del paquete coincida con el nombre en product.xml.

    Revisa la documentación: Consulta la documentación oficial de Microsoft para asegurarte de que no te falte ningún paso específico para .NET 8.

    Espero que estos pasos te ayuden a resolver el problema. Si necesitas más asistencia, no dudes en preguntar.

    ¡Buena suerte con tu proyecto!

    1: Seguridad e implementación ClickOnce - Visual Studio

    2: Implementación de una aplicación de escritorio de Windows de .NET con ClickOnce

    Espero que estos consejos ayuden a resolver el problema. Si necesitas más asistencia, estoy a tu disposición.

    Saludos,

    Jonathan.

    ----------*

    Tu opinión es muy importante para nosotros! Si esta respuesta resolvió tu consulta, por favor haz clic en ''. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.


  2. Daniel Contarino 0 Puntos de reputación
    2024-11-27T23:18:41.24+00:00

    Incluí los .xml sugeridos y sigo teniendo el MISMO mensaje de error. Reinicié VS y mi PC... Tendré que seguir usando .NET 4.8.1?


  3. Daniel Contarino 0 Puntos de reputación
    2024-11-28T00:49:23.4566667+00:00

    Solucionado! El archivo windowsdesktop-runtime-8.0.11-win-x64.exe va en C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VisualStudio\BootstrapperPackages\net8desktopruntime_x64

    0 comentarios No hay comentarios

  4. Jonathan Pereira Castillo 10,505 Puntos de reputación Proveedor de Microsoft
    2024-11-28T16:14:07.8866667+00:00

    Hola Daniel Contarino

    Agradezco sinceramente por haber tenido la oportunidad de ayudarle Es gratificante saber que la información que proporcioné estaba correcta

    Jonathan


Su respuesta

Las respuestas se pueden marcar como respuestas aceptadas por el autor de la pregunta, lo que ayuda a los usuarios a conocer la respuesta que resolvió el problema del autor.