.net - válido - no se pudo crear el certificado predeterminado. se va a anular la publicación
ClickOnce setup.exe falla, pero el archivo.application funciona bien cuando se usa un recurso compartido de Windows para la implementación (2)
Recibo el error de System.Deployment.Application.DeploymentDownloadException
cuando intento ejecutar setup.exe para mi aplicación ClickOnce. Si lo ejecuto en la red desde su ubicación original, funciona bien, pero si copio el setup.exe
de la ruta del servidor, aparece el error.
No se puede descargar la aplicación. A la aplicación le faltan archivos necesarios.
Necesito la configuración, ya que instala algunos requisitos previos ( .NET 4) que el usuario final puede no tener.
Al hacer clic en el botón de detalles de la ventana de error se obtiene la siguiente información:
PLATFORM VERSION INFO
Windows : 6.1.7601.65536 (Win32NT)
Common Language Runtime : 4.0.30319.237
System.Deployment.dll : 4.0.30319.1 (RTMRel.030319-0100)
clr.dll : 4.0.30319.237 (RTMGDR.030319-2300)
dfdll.dll : 4.0.30319.1 (RTMRel.030319-0100)
dfshim.dll : 4.0.31106.0 (Main.031106-0000)
SOURCES
Deployment url : file:///C:/Users/srchamberlain/Downloads/ContractFlowTool.application
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of C:/Users/srchamberlain/Downloads/ContractFlowTool.application resulted in exception. Following failure messages were detected:
+ Downloading file:///C:/Users/srchamberlain/Downloads/ContractFlowTool.application did not succeed.
+ Could not find file ''C:/Users/srchamberlain/Downloads/ContractFlowTool.application''.
+ Could not find file ''C:/Users/srchamberlain/Downloads/ContractFlowTool.application''.
+ Could not find file ''C:/Users/srchamberlain/Downloads/ContractFlowTool.application''.
COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.
WARNINGS
There were no warnings during this operation.
OPERATION PROGRESS STATUS
* [8/16/2011 12:23:26 PM] : Activation of C:/Users/srchamberlain/Downloads/ContractFlowTool.application has started.
ERROR DETAILS
Following errors were detected during this operation.
* [8/16/2011 12:23:26 PM] System.Deployment.Application.DeploymentDownloadException (Unknown subtype)
- Downloading file:///C:/Users/srchamberlain/Downloads/ContractFlowTool.application did not succeed.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
at System.Deployment.Application.DownloadManager.DownloadManifestAsRawFile(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
--- Inner Exception ---
System.Net.WebException
- Could not find file ''C:/Users/srchamberlain/Downloads/ContractFlowTool.application''.
- Source: System
- Stack trace:
at System.Net.FileWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.FileWebRequest.GetResponse()
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
--- Inner Exception ---
System.Net.WebException
- Could not find file ''C:/Users/srchamberlain/Downloads/ContractFlowTool.application''.
- Source: System
- Stack trace:
at System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
at System.Net.FileWebRequest.GetResponseCallback(Object state)
--- Inner Exception ---
System.IO.FileNotFoundException
- Could not find file ''C:/Users/srchamberlain/Downloads/ContractFlowTool.application''.
- Source: mscorlib
- Stack trace:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync)
at System.Net.FileWebStream..ctor(FileWebRequest request, String path, FileMode mode, FileAccess access, FileShare sharing, Int32 length, Boolean async)
at System.Net.FileWebResponse..ctor(FileWebRequest request, Uri uri, FileAccess access, Boolean asyncHint)
COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.
La raíz del problema es que está intentando descargar sus archivos desde la misma ruta de la que se ejecuta el file:///C:/Users/srchamberlain/Downloads
setup.exe
( file:///C:/Users/srchamberlain/Downloads
en este caso) en lugar de la URL implementación real ( //fs1/contractflowtool
)
He visto few solutions , pero todas me dicen que la solución es cambiar el tipo MIME en IIS. IIS no está instalado en el servidor que hospeda los archivos.
¿Qué más se puede hacer para solucionar esto además de "cambiar los tipos MIME"?
ACTUALIZAR
Ver la segunda publicación en este hilo para algunos casos de prueba que corrí. El resumen es: parece que el archivo setup.exe
usa el directorio de trabajo para descargar sus archivos, ya que funciona bien cuando ejecuto el archivo EXE a través de la red, sin embargo, falla si copio el EXE en mi disco local.
¿Cómo resuelvo este problema que no sea "Dile a la gente que simplemente lo ejecute desde la ruta de la red"?
ACTUALIZACIÓN2: Mirando el archivo setup.exe
con un editor hexadecimal, no pude encontrar mi ruta de instalación en ningún lugar. Cuando cambié la ruta de instalación a http://example.com/Test , pude encontrarla fácilmente.
¿Es un error de Visual Studio que no guarda la ubicación de publicación / ruta de instalación si está utilizando una ruta UNC ?
De la forma en que lo entiendo, el archivo Setup.exe
no contiene su aplicación; es solo la forma en que Visual Studio instala los requisitos previos, y luego ejecuta su archivo .application
para instalar su aplicación.
He probado esto con una de mis propias aplicaciones. Primero, copié el setup.exe
y obtuve el mismo error que tú:
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of C:/Users/Andy/Desktop/Video Uploader.application resulted in exception. Following failure messages were detected:
+ Downloading file:///C:/Users/Andy/Desktop/Video Uploader.application did not succeed.
+ Could not find file ''C:/Users/Andy/Desktop/Video Uploader.application''.
+ Could not find file ''C:/Users/Andy/Desktop/Video Uploader.application''.
+ Could not find file ''C:/Users/Andy/Desktop/Video Uploader.application''.
Luego copié la aplicación Video Uploader.application
en mi escritorio y funcionó. Por lo tanto, parece que si desea instalarlo desde otro lugar que no sea el recurso compartido de red, solo debe asegurarse de que tenga ambos archivos.
Otras cosas para verificar, si no lo tiene descargando los prerrequisitos del sitio web de los proveedores, asegúrese de que esté apuntando a un lugar estático, o al menos asegúrese de copiar esos archivos también.
En el Asistente de publicación, en How will users install the application?
página, I selected From a CD-ROM or DVD-Rom
. No sé si seleccionar una de las otras dos opciones podría cambiar la forma en que funciona.
Editar:
Leí tu otra publicación. Sospecho que tiene que ver con cómo los diferentes protocolos manejan los archivos. Pude hacerlo funcionar desde la página publish.html
, pero en realidad lo publiqué en un servidor web, por lo que la dirección de la página era http://www.example.com/programs/publish.html
.
Intenté ejecutarlo desde n:/webroot/programs/publish.html
, y falló.
¿Tienes una manera de publicarlo en un servidor web? ¿O al menos instalar IIS o Apache para convertirlo en un servidor web?
Alternativamente, solo asegúrese de que todos tengan los requisitos previos, y luego haga que hagan clic en el enlace de inicio :
Edición 2:
Aquí está mi configuración de publicación. Funciona haciendo clic en el botón de instalación en Internet Explorer, Firefox y Chrome (todo lo que probé).
Parece que el archivo de configuración está buscando en el sitio web el archivo .application
, por lo que no necesita estar en la computadora local.
Edición 3:
En Windows (XP y Windows 7 verificados):
* Paso 1: Menú de inicio -> Ejecutar
* Paso 2: Escribe ''iexpress'' sin ''
* Paso 3: Sigue el wizzard.
http://expertester.wordpress.com/2008/07/11/create-self-extractinginstaller-for-free/
Una vez hecho esto, entonces puedes hacer tu propia página HTML apuntando a tu archivo EXE del instalador. Lo único que encontré fue que la instalación no funcionaba la primera vez cada vez. Lo ejecuté, y no extrajo los archivos. Luego lo ejecuté instantáneamente por segunda vez, y funcionó bien ... Todavía no sé por qué.
Usamos un archivo ZIP autoextraíble para iniciar nuestra instalación. (Hay muchas maneras de hacer esto, por ejemplo, usar 7-Zip , WinZip , etc.) De esta manera solo hay 1 archivo para descargar.
Pero no estoy seguro de cómo manejaría las actualizaciones en este escenario. Supongo que podría publicar tanto el archivo ClickOnce como el archivo ZIP autoextraíble para que la aplicación encuentre los archivos necesarios después ...
Espero que esto ayude.