当前位置: 首页 > 技术突破

如何使用.NET Core创建和部署WPF应用程序

时间:2024-02-27 22:27:10 技术突破

  错误消息表明,ClickOnce部署清单(.application File)包含Windows表单应用程序不支持的属性。但是,这似乎是出乎意料的,因为上下文是WPF应用程序,而不是Windows Forms应用程序。然而,如果部署清单包含不正确或不支持的属性,可能会发生类似的错误。

  要解决此问题,您可以尝试以下步骤:

  确保您不会无意中使用用于其他类型的应用程序(例如Windows表单)的清单中的设置或属性。

  在文本编辑器中打开.application部署清单文件,以手动检查XML内容。寻找一个命名的属性。

  如果找到属性,请将其删除或将其设置为false,假设该属性对于您的应用程序的部署方案不需要。

  如果您不确定要手动编辑清单文件,则可以尝试使用MAGE再生部署清单,而无需包含任何不支持的属性。例如:

  使用MAGE验证生成的.Application文件以检查任何不一致之处:

  保存更改并尝试再次启动应用程序。

  如果问题持续存在,请考虑为您的应用程序生成一套新清单,并确保您遵循ClickOnce部署指南,而无需包括不适用于应用程序类型的属性。

  无论如何,在编辑.manifest和.pllication文件时要谨慎,因为错误的编辑可能会导致各种部署问题。在进行任何更改之前,请始终备份您的原始文件。”,“发送者”:“ gpt”,“ create_at”:“ 2024-01-31 15:44:52”},{“ id”:15750,“ body”:“试图启动应用程序时发生错误:.application导致异常。检测到以下故障消息: + Windows表单应用程序不支持自定义主体指定的属性。”,“发送者”:“用户”,“ create_at”:“ 2024-01-31 15:44:16”},{“ ID”:15747,“身体”:”

  要使用MAGE工具生成和更新清单,您将需要指定正确的参数和选项。在提供新的应用清单的提供的步骤中,似乎存在错误。正确的MAGE命令生成现有.EXE文件的新应用程序清单应指定您要创建的清单的类型。这是校正的步骤:

  使用以下命令为您的应用程序.EXE文件生成新的应用程序清单文件:

  为了更改现有应用程序清单后,您将使用以下命令:

  现在,您创建了一个新的部署清单,使用以下命令指向您的应用程序清单:

  随后,您可以编辑部署清单,以使用Mage指定部署详细信息:

  请记住,法师创建并修改XML文件以进行ClickOnce部署。当使用-new选项用于创建新的清单文件时,-update选项用于使用新信息更新现有的清单文件。如果需要用证书签名清单,请确保使用Mage的-Sign选项包括该步骤。“ ID”:15746,“ Body”:“步骤4在无效的文件类型中结果,必须为“应用程序”或“部署”第一个参数必须是以下一个:-new,-update,-update,-sign,-verify,-verify-“,“ sender”:“用户”,“ create_at”:“ 2024-01-31 15:37:19”},{“ id”:15738,“ body”:“”

  如果您有一个预编译WPF应用程序,但无法访问源代码或Visual Studio,则仍然可以使用MAGE(清单生成和编辑)工具来准备ClickOnce部署。Mage是一种命令行工具,可让您创建和编辑应用程序和部署清单,这对于ClickOnce部署是必需的。这是您将要关注的步骤的一般概述:

  首先,确保您安装了.NET SDK,其中包括法师实用程序。

  打开命令提示符或powershell窗口。

  导航到您预先编译的应用程序文件所在的目录。

  使用法师为您的可执行文件生成新的应用程序清单。例如:

  使用与-edit标志的Mage一起编辑必要的(可选)的生成的应用程序清单。您可能需要设置诸如发布者名称,应用程序版本等之类的属性。例如:

  创建一个指向您应用程序清单的部署清单。这也是使用法师完成的:

  根据需要编辑部署清单,以设置部署选项,例如更新行为,开始位置等:

  如果需要,请用证书签名。您可以使用-certfile或-certhash选项再次使用法师进行此操作,具体取决于您有PFX文件还是证书哈希。

  复制所有必要的应用程序文件,包括.exe,.dlls,.config(如果有),应用程序清单(.manifest)和部署清单(.application),将您从那里分发clickonce部署的位置。

  创建并配置了应用程序和部署清单后,您的应用程序就可以使用ClickOnce部署。然后,用户可以使用部署清单文件(带有.application扩展名)。“:15734,“ Body”:“此应用程序是AlreAy构建的,源代码不可用。ClickOnce如何准备?

  要在Visual Studio中使用ClickOnce部署发布预编译的WPF应用程序,请按照以下步骤:

  在Visual Studio中打开解决方案。

  在解决方案资源管理器中,右键单击您要发布的WPF应用程序项目。

  从上下文菜单中,选择“发布”或单击“构建”>“发布[ProjectName]”。

  发布向导将打开。如果这是您第一次发布,将提示您选择一个发布目标。对于ClickOnce,您可以选择发布到文件夹,然后根据需要从那里分发应用程序。

  选择或创建将发布应用程序的文件夹。

  配置其余设置,例如版本,先决条件,更新设置等。这些取决于您希望如何在客户端计算机上安装和更新应用程序。

  查看设置,然后单击发布按钮。Visual Studio将将必要的文件复制到指定的发布文件夹。

  请记住,如果您已经构建了应用程序,请确保所选的配置(调试或发行版)和平台(任何CPU,X86,X64)匹配您要使用ClickOnce部署的版本。

  另外,如果自上次构建以来对应用程序或发布设置进行了任何更改,Visual Studio将在发布前重建项目。15:57“},{“ id”:15730,“ body”:“如何clickonce发布已经编译的WPF应用程序?15:15:41“}]},{“ ID”:2991,“摘要”:“用户向无VM上的Azure上托管WPF应用程序并使用Docker容器,并就两种情况的可行性都提供了建议。”,“ UPDATED_AT”:“ 2024-01-20 06:00”,“ create_at”:“ 2024-01-20 02:27:34”,“ user_uid”:“ S59T3DRGRTOM7PFB”,“:12332,“身体”:”

  是的,您可以在Docker容器中运行WPF应用程序,但这通常用于测试和开发方案而不是生产。像Docker中的WPF应用程序一样运行GUI应用需要一个基于Windows的容器,因为WPF取决于Windows环境。

  要在Docker容器中运行WPF应用程序,您将执行以下操作:

  确保安装并配置为使用Windows容器的Docker桌面。

  为您的WPF应用程序创建一个Dockerfile,该应用程序从带有Windows的基本图像开始,并安装了必要的依赖项。

  从此Dockerfile构建Docker图像。

  从图像运行Docker容器。您可能需要其他设置来显示GUI,例如运行远程桌面应用程序以连接到容器并访问WPF应用程序的接口。

  为了给您一个基本的想法,一个用于运行WPF应用程序的简单码头可能看起来像这样:

  请注意,在容器化的环境中运行WPF应用程序可能很复杂,并且可能不适合所有情况。如果您需要交互式GUI应用程序,则更传统的方法是使用VM或远程桌面服务环境。”,“ Sender”:“ GPT”,“ create_at”:“ 2024-01-20 02:28:43”},{“ ID”:12331,“ Body”:“使用Docker images,您可以从容器和图像中运行WPF应用程序吗?-20 02:28:31“},{“ ID”:12330,“身体”:”

  不,由于WPF应用程序设计用于在台式机上运行并需要用户界面,因此Azure不在本地支持托管WPF应用程序。Azure主要用于基于Web的服务,后端服务和云处理任务。

  但是,如果您绝对需要在Azure中运行WPF应用程序,则必须在Azure上设置Windows虚拟机(VM)。然后,您可以在该VM上安装并运行任何桌面应用程序,包括WPF应用程序。请记住,使用VM违反云资源进行缩放的典型用途,应考虑成本和收益。:27:38“},{“ id”:12329,“ bodon”:“您可以在Azure中运行.NET Core WPF应用程序,而无需设置VM?:“ 2024-01-20 02:27:34”}]}},{“ id”:2755,“摘要”:“用户以不清楚的意图启动了对话,然后寻求有关开发仓库管理应用程序成本的信息。id“:11330,“身体”:”

  开发仓库管理应用程序的成本可能会根据多种因素,包括应用程序的复杂性,所需功能,开发团队的位置以及您在内部构建还是外包工作的多种因素。以下是要考虑的一些一般要点:

  复杂性:具有基本库存跟踪的简单应用程序的成本可能明显少于全面的解决方案,这些解决方案包括实时跟踪,预测分析,自动补充等功能等功能。

  功能:更多功能通常意味着更多的开发时间和更高的成本。常见功能,例如条形码扫描,报告,与其他系统集成以及用户帐户管理可能会增加成本。

  自定义:从头开始制作的自定义设计的应用比现有解决方案或平台制成的应用更昂贵。

  开发团队:软件开发团队的位置和经验水平可以极大地影响成本。例如,北美开发商的利率通常高于东欧或亚洲的开发商。

  内部与外包:雇用内部团队可能会导致由于薪水,福利和其他与员工相关的费用而导致更高的长期成本。外包可能更具成本效益,但需要仔细选择供应商以确保质量。

  维护和支持:维护,更新和用户支持的开发后成本也很重要,需要在应用程序的总体预算中考虑。

  作为一个粗略的估计,简单的应用程序的价格可能从10,000美元到50,000美元不等,而复杂的解决方案可能超过100,000美元。但是,对于特定的定价,强烈建议您咨询软件开发公司或可以根据您的项目要求提供报价的承包商。00:13“},{“ id”:11329,“ body”:“仓库管理应用程序成本是多少,“发送者”:“用户”,“ create_at”:“ 2024-01-15 16:59:47“},{“ id”:11328,“身体”:”

  你好!我如何为Windows演示基金会(WPF)或任何.NET Core相关主题提供帮助?“ ID”:11327,“身体”:“ Hello Man”,“ Sender”:“用户”,“ create_at”:“ 2024-01-15 16:59:22”},{“ ID”:11326,“身体”“:”

  看起来可能有错字或无关查询。如果您对Windows演示基金会(WPF)有任何疑问,请使用.NET Core创建,运行或部署WPF应用程序,或您在这些领域内面临的任何特定挑战,请随时提出,我会很高兴协助您。“,“ sender”:“ gpt”,“ create_at”:“ 2024-01-15 16:59:17”},{“ id”:11325,“ body”:“ fjskljfksdjkflsd”,“ sender”,“ sender”:“用户”,“ create_at”:“ 2024-01-15 16:59:15”}]}},{“ id”:2443,“ summary”:“用户正在寻求有关在WPF中重定向的登录页面创建登录页面的指导并在Visual Studio中添加新窗口。”,“ UPDATED_AT”:“ 2024-01-09 15:00”,“ create_at”:“ 2024-01-09 11:57:44”,“ user_uid”,“ user_uid”:“ a3xjjtrlwbnncx8xzzz Z”,,“消息”:[{“ id”:9714,“身体”:“要使用Visual Studio在WPF应用程序中创建一个新窗口,请按照以下步骤:

  1. **打开您的项目:**

  启动Visual Studio并打开您现有的WPF项目,您想在其中添加新窗口。

  2. **添加新项目:**

  在解决方案资源管理器中,右键单击您的项目名称,然后选择“ add” - >“窗口...”。

  3. **选择窗口模板:**

  在“添加新项目”对话框中,您将看到一个模板列表。选择`窗口(WPF)`如果您正在从事WPF项目。

  4. **命名您的窗口:**

  在“添加新项目”对话框的底部,有一个文本字段,您可以为新窗口提供名称。适当地命名以反映其目的,例如`loginwindow.xaml`。

  5. **设计您的窗口:**

  Visual Studio将为您的窗口创建一个新的XAML文件和一个代码文件(例如`loginwindow.xaml`和loginwindow.xaml.cs`)。现在,您可以通过将控件和元素添加到'loginwindow.xaml`文件来设计窗口的用户界面。

  6. **实施逻辑:**

  在代码范围文件中为窗口编写任何必要的逻辑,`loginwindow.xaml.cs`。

  完成这些步骤后,您应该在WPF应用程序中创建一个新窗口,可以在运行时进行编程和显示。”,“ Sender”:“ GPT”,“ create_at”:“ 2024-01-09 12:04:18:18“},{“ id”:9713,“身体”:“我如何在Visual Studio中创建一个新窗口?55“},{“ id”:9710,“ bodon”:“在成功登录成功时,在WPF中创建一个登录页面,然后重定向到另一页,您需要为登录而创建一个新窗口,而另一个则为主要内容创建另一个页面这将在登录过程后显示。这是一个逐步创建此类功能的过程。

  1. **创建登录窗口:**

  打开Visual Studio,并在WPF项目中添加新窗口。将其命名为`loginwindow.xaml`。

  2. **设计登录窗口:**

  使用用户名和密码输入的必要控件设计UI,以及一个按钮以提交凭据。

  

  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

  Title="登录" Height="300" Width="300">