【问题标题】:How to add window service exe (as external exe) in clickonce如何在clickonce中添加窗口服务exe(作为外部exe)
【发布时间】:2020-10-21 08:01:17
【问题描述】:

我有一个具有桌面 ui wpf 项目和窗口服务的解决方案。我需要创建 clickonce 安装程序。我已经成功地为 wpf 应用程序创建了安装程序。对于窗口服务,我只是将项目的引用添加到 wpf 项目中。在应用程序文件中包含窗口服务 exe,然后发布应用程序。安装 clickonce 设置时收到以下错误消息

平台版本信息 Windows : 10.0.18363.0 (Win32NT) Common 语言运行时:4.0.30319.42000 System.Deployment.dll: 4.8.3752.0 构建者:NET48REL1 clr.dll:4.8.4121.0 构建者:NET48REL1LAST_C dfdll.dll:4.8.3752.0 构建者:NET48REL1 dfshim.dll : 10.0.18362.1 (WinBuild.160101.0800)

SOURCES 部署网址: http://192.168.0.162:8189/Netsolace.Edible.Partner.Desktop.application 服务器:Microsoft-IIS/10.0 X-Powered-By:ASP.NET 部署提供程序 url:http://192.168.0.162:8189/Netsolace.Edible.Partner.Desktop.application 申请网址: http://192.168.0.162:8189/Application%20Files/Netsolace.Edible.Partner.Desktop_1_0_0_53/Netsolace.Edible.Partner.Desktop.exe.manifest 服务器:Microsoft-IIS/10.0 X-Powered-By : ASP.NET

IDENTITIES 部署身份: Netsolace.Edible.Partner.Desktop.application,版本=1.0.0.53, 文化=中性,PublicKeyToken=cd5358bf47526dee, 处理器架构=msil 应用程序标识: Netsolace.Edible.Partner.Desktop.exe,版本=1.0.0.53, 文化=中性,PublicKeyToken=cd5358bf47526dee, 处理器架构=msil,类型=win32

应用程序摘要 * 可安装的应用程序。

错误总结 下面是错误的总结,这些的详细信息 错误在日志后面列出。 * 激活 http://192.168.0.162:8189/Netsolace.Edible.Partner.Desktop.application 导致异常。检测到以下失败消息:+ 清单中的引用与身份不匹配 下载的程序集 Netsolace.Edible.Partner.WindowServices.exe。

组件商店交易失败摘要没有交易错误 检测到。

WARNINGS 在此操作期间没有警告。

操作进度状态 * [10/21/2020 12:47:03 PM]:激活 http://192.168.0.162:8189/Netsolace.Edible.Partner.Desktop.application 已经开始。 * [10/21/2020 12:47:03 PM]:部署处理 清单已成功完成。 * [2020 年 10 月 21 日下午 12:47:03]: 应用程序的安装已开始。 * [2020 年 10 月 21 日 12:47:04 PM] : 应用程序清单的处理已成功完成。

  • [10/21/2020 12:47:06 PM]:找到兼容的运行时版本 4.0.30319。 * [10/21/2020 12:47:06 PM]:平台信任和检测请求已完成。

错误详情 在此操作期间检测到以下错误。

  • [2020 年 10 月 21 日下午 12:47:08] System.Deployment.Application.InvalidDeploymentException (RefDefValidation)
    • 清单中的引用与下载的程序集 Netsolace.Edible.Partner.WindowServices.exe 的标识不匹配。
    • 来源:System.Deployment
    • 堆栈跟踪:在 System.Deployment.Application.DownloadManager.ProcessDownloadedFile(Object 发件人,DownloadEventArgs e) 在 System.Deployment.Application.FileDownloader.DownloadModifiedEventHandler.Invoke(对象 发件人,DownloadEventArgs e) 在 System.Deployment.Application.FileDownloader.OnModified() 在 System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem 下一个)在 System.Deployment.Application.SystemNetDownloader.DownloadAllFiles() 在 System.Deployment.Application.FileDownloader.Download(订阅状态 subState, X509Certificate2 clientCertificate) 在 System.Deployment.Application.DownloadManager.DownloadDependencies(订阅状态 子状态、AssemblyManifest 部署清单、AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification 通知,DownloadOptions 选项)在 System.Deployment.Application.ApplicationActivator.DownloadApplication(订阅状态 subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory&downloadTemp) 在 System.Deployment.Application.ApplicationActivator.InstallApplication(订阅状态& subState, ActivationDescription actDesc) 在 System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl, Uri& deploymentUri) at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, 字符串&errorPageUrl) --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 在 System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, 字符串& errorPageUrl) 在 System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(对象 州)

COMPONENT STORE TRANSACTION DETAILS 没有交易信息 可用。

【问题讨论】:

  • ClickOnce 不是为安装 Windows 服务而设计的。考虑使用常规安装技术
  • 我知道,我正在添加窗口服务,就像外部 exe 一样
  • ClickOnce 用于在每个用户的基础上部署 WinForms 和 WPF 风格的应用程序。应用安装到 C:\Users\\AppData\Local\Apps\2.0\xxx\xxx

标签: c# wpf service clickonce desktop-application


【解决方案1】:

您可以在当前解决方案中添加该 exe,使用 添加->添加现有文件(所有文件)。

如果该 exe 在 ClickOnce 设置中仍未生成,请检查添加的属性 按F4键 .

希望这个答案有帮助。

【讨论】:

  • 我做了同样的事情,安装后出现上述错误
  • 你的 EXE 的 Build Action 属性是什么
  • 您可能可以通过这种方式部署其他 .EXE,但它不会注册 Windows 服务,也不允许稍后通过 添加/删除程序卸载 WS跨度>
  • 而不是使用 ClickOnce 尝试 Wix。它是开源且易于使用的部署工具。
猜你喜欢
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
  • 2013-01-01
  • 1970-01-01
相关资源
最近更新 更多