c# - tienen - la identidad de la implementación no coincide con la suscripción
Error al implementar la aplicación ClickOnce: la referencia en el manifiesto no coincide con la identidad del ensamblado descargado (15)
Confirmé que el problema también existe en Visual Studio 2010. Al seleccionar "Crear aplicación sin manifiesto" en Propiedades del proyecto - Aplicación - Recursos resolvió el problema.
Estoy intentando implementar una aplicación ClickOnce, pero la instalación falla en el cliente. Aquí está el registro de errores:
PLATFORM VERSION INFO
Windows : 6.1.7601.65536 (Win32NT)
Common Language Runtime : 4.0.30319.1
System.Deployment.dll : 4.0.30319.1 (RTMRel.030319-0100)
clr.dll : 4.0.30319.1 (RTMRel.030319-0100)
dfdll.dll : 4.0.30319.1 (RTMRel.030319-0100)
dfshim.dll : 4.0.31106.0 (Main.031106-0000)
SOURCES
Deployment url : http://MyProduct.com/download/workstation/MyProduct%20Front%20Desk.application
Server : Microsoft-IIS/7.5
X-Powered-By : ASP.NET
Deployment Provider url : http://MyProduct.com/Download/Workstation/MyProduct%20Front%20Desk.application
Server : Microsoft-IIS/7.5
X-Powered-By : ASP.NET
Application url : http://MyProduct.com/Download/Workstation/Application%20Files/MyProduct%20Front%20Desk_1_0_0_7/MyProduct%20Front%20Desk.exe.manifest
Server : Microsoft-IIS/7.5
X-Powered-By : ASP.NET
IDENTITIES
Deployment Identity : MyProduct Front Desk.application, Version=1.0.0.7, Culture=neutral, PublicKeyToken=df343a0868ab2d74, processorArchitecture=msil
Application Identity : MyProduct Front Desk.exe, Version=1.0.0.7, Culture=neutral, PublicKeyToken=df343a0868ab2d74, processorArchitecture=msil, type=win32
APPLICATION SUMMARY
* Installable application.
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of http://MyProduct.com/download/workstation/MyProduct%20Front%20Desk.application resulted in exception. Following failure messages were detected:
+ Reference in the manifest does not match the identity of the downloaded assembly MyProductSiteServer.exe.
COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.
WARNINGS
There were no warnings during this operation.
OPERATION PROGRESS STATUS
* [03/17/11 11:51:04] : Activation of http://MyProduct.com/download/workstation/MyProduct%20Front%20Desk.application has started.
* [03/17/11 11:51:04] : Processing of deployment manifest has successfully completed.
* [03/17/11 11:51:04] : Installation of the application has started.
* [03/17/11 11:51:05] : Processing of application manifest has successfully completed.
* [03/17/11 11:51:06] : Found compatible runtime version 4.0.30319.
* [03/17/11 11:51:06] : Request of trust and detection of platform is complete.
ERROR DETAILS
Following errors were detected during this operation.
* [03/17/11 11:51:30] System.Deployment.Application.InvalidDeploymentException (RefDefValidation)
- Reference in the manifest does not match the identity of the downloaded assembly MyProductSiteServer.exe.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.DownloadManager.ProcessDownloadedFile(Object sender, DownloadEventArgs e)
at System.Deployment.Application.FileDownloader.DownloadModifiedEventHandler.Invoke(Object sender, DownloadEventArgs e)
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.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)
at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
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)
COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.
El principal exe que necesito implementar es MyProductFrontDesk.exe
, que tiene una dependencia en MyProductSiteServer.exe
, y que parece ser donde se produce el error: "La referencia en el manifiesto no coincide con la identidad del ensamblado descargado MyProductSiteServer.exe "
¿Qué manifiesto necesita ser corregido? ¿Y cómo?
Es interesante. Acabo de redesplegar la aplicación y el problema resuelto. Tal vez una corrupción de archivos debido a la red.
Estaba encontrando el mismo problema, pero mi solución fue muy diferente.
Mi aplicación ClickOnce estaba haciendo referencia a otro proyecto de archivo EXE en mi solución, por lo que cuando el cliente lo descargó, y había otro archivo EXE, ese no tenía un manifiesto.
Eliminar la dependencia de otro ejecutable resolvió mi problema.
Esto también puede suceder si tiene dos versiones diferentes de un paquete NuGet referenciado en diferentes archivos DLL en su proyecto. En mi caso, yo estaba usando un marco llamado Catel, y tenía una versión más nueva referenciada en un archivo DLL que otra (supervisión), pero esto provocó que ClickOnce escupiera este error. Hacer referencia a la misma versión resolvió el problema.
Estoy usando Visual Studio 2012 en Windows 7 y necesito publicar una solución que consta de dos proyectos.
Como señaló Eduardo, marcar ambos proyectos como ClickOnce y habilitar Full Trust Application resuelve el problema.
He experimentado el mismo error al implementar con el proyecto configurado para depurar. Cuando se cambió de nuevo a Release, no hubo ningún error.
Hubo un problema con Visual Studio 2008 que se resuelve al no incrustar el manifiesto predeterminado : uno de los comentarios en ese artículo sugiere que el problema aún existe en Visual Studio 2010.
En las propiedades del proyecto -> pestaña Aplicación -> Recursos -> casilla de verificación Icono y manifiesto , la configuración "Inventario incrustado con configuraciones predeterminadas" causó el problema. Establecerlo en "Crear aplicación sin manifiesto" soluciona el problema.
Otra solución, en caso de que el exe de la dependencia con el manifiesto de la aplicación incorrecta no se pueda cambiar (digamos que proviene de un paquete NuGet). El binario se puede incluir como contenido con una extensión ficticia, por lo que ClickOnce no intenta validar el manifiesto y luego se renombra durante el inicio de la aplicación.
csproj:
<Content Include="../packages/<package>/lib/<app>.exe">
<Link><app>.exe.bin</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<ItemGroup>
<PublishFile Include="<app>">
<Visible>False</Visible>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Exclude</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
</ItemGroup>
App.xaml.cs:
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
var appDir = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName);
if (!File.Exists($"{appDir}//<app>.exe"))
{
File.Copy($"{appDir}//<app>.exe.bin", $"{appDir}//<app>.exe");
}
}
}
TAMBIÉN SOLUCIONADO PARA ClickOnce .exe llamando .exe llamando .exe.
También tuve este problema, usando VB.NET en Visual Studio 2010.
Tengo una aplicación ClickOnce de Windows Forms que hace referencia a una segunda aplicación de Windows Forms que a su vez hace referencia a una tercera aplicación de Windows Forms. (Estas aplicaciones segunda y tercera son archivos EXE lugar de archivos DLL por simplicidad, ya que es igualmente probable que se ejecuten de manera independiente o que se llamen con propiedades que se les pasen).
Tuve que comentar AMBOS contenidos de manifiesto de la segunda y tercera aplicaciones por:
Tutorial: Implementación manual de una aplicación ClickOnce
Funciona perfectamente
Tenía exactamente el mismo problema. No pude eliminar la dependencia como lo necesitaba el proyecto principal. El segundo proyecto fue un proyecto de consola.
Cambié a Class Library , y luego todo funcionó.
Tuve el mismo problema cuando agregué una referencia a otro proyecto.
La forma de resolver esto fue habilitando la configuración de seguridad de ClickOnce en todos los proyectos referenciados como Ian explicó here (énfasis mío):
Para mí, la forma en que esto se resolvió fue asegurar que todos los Proyectos bajo la Solución que expuso la " Pestaña de Seguridad " en sus " Propiedades del Proyecto " tuvieran la Opción " Activar Configuraciones de Seguridad ClickOnce " marcadas con la Opción " Esto es una confianza completa aplicación "Seleccionado. Esto tiene que ver con la creación correcta del Manifiesto y la aplicación no se instalará si estas opciones no están establecidas en todos los Proyectos dentro de la Solución que lo requieren.
Creo que esta es la forma correcta de solucionarlo cuando se hace referencia a otro proyecto con la misma solución.
La publicación del foro vinculado ya ha caducado, pero está disponible en el archivo here .
Tuve el mismo problema, pero mi solución fue cambiar el ''Objetivo de la plataforma'' a ''x86'' (Propiedades del proyecto -> Pestaña Compilación). Se estableció en Cualquier CPU. Tan pronto como cambié la configuración y volví a publicarla, el instalador de ClickOnce pudo completarse.
Tuve el mismo problema, y probé todas las soluciones sugeridas anteriormente aquí, y todas ellas no funcionaron.
Lo arreglé cambiando la ubicación de actualización. Desde propiedades del proyecto -> Publicar -> Actualizaciones . Cambia la ubicación de actualización a tu carpeta publicada.
Tuve un problema diferente que pude resolver y por eso quería publicar. Mi problema era que estaba ejecutando 3 sucursales de TFS. Actualicé los controles Telerik en una de mis ramas pero no en las otras. Una vez que actualicé los controles de Telerik en las 3 ramas y volví a publicar, funcionó y este error desapareció.
Estaba ejecutando VS2015 en ese momento.
Yo uso mage.exe
para generar mi manifiesto. Agregar esto a mi .csproj
solucionó el problema. También puede probar la bandera del compilador -nowin32manifest
el estado en -nowin32manifest
; No lo he probado. No veo "Crear aplicación sin manifiesto" de stuartd en Visual Studio 2017; Creo que esto es lo que hace sin embargo.
<PropertyGroup>
<NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>
También tengo esto en mi .csproj
:
<GenerateManifests>false</GenerateManifests>