Visual Studio MSIX 应用创建:入口点 (.exe) 不正确
Posted
技术标签:
【中文标题】Visual Studio MSIX 应用创建:入口点 (.exe) 不正确【英文标题】:Visual Studio MSIX App Creation: Entry Point (.exe) not correct 【发布时间】:2021-08-01 23:54:52 【问题描述】:我制作了一个 Windows 窗体项目,它承载了一个 WPF 用户控件(某种 3D 视口),它们基本上是两个“独立”的项目。 将这两者结合到一个主项目中确实有效,我可以使用我的 Windows 窗体应用程序访问 Wpf。 在下一步中,我想按照 Visual Studio 2019 的建议创建一个“MSIX”应用程序。所以我插入了一个“第三个”项目模板(MSIX 项目模板),并像官方指南一样设置参考。所以这主要是将我的“主要”Windows 窗体程序链接为 MSIX 模板中的应用程序,并将其设置为应用程序的“入口点”。
我的 WPF 程序在我的主程序中被引用,所以我不必再次在 MSIX 模板中链接它。 到目前为止,一切都很好。调试也不会带来任何错误。 但是,调试器并没有按照定义的入口点打开主程序(即 WinForms),而是仅打开 WPF 应用程序(实际上只能通过 Windows 窗体程序中的 ButtonClick 事件访问)....
在 .wapproj 文件中:
<EntryPointProjectUniqueName>..\..\Visu 2.0 Core\Visu 2.0 Core\Visu 2.0 Core.csproj</EntryPointProjectUniqueName>
这是我想要运行的导入项目(主 WindowsForms 程序部分)的文件夹。
我读到了该物业
<EntryPointexe/>
我现在有两个地方可以获取我的 .exe 文件:我最初创建程序的文件夹 或我重新“构建”项目的文件夹以及 MSIX 项目特定的东西(在新项目名称下) 所以我真的不知道设置这个是否有帮助。这似乎是我的应用程序无法运行/显示初始(windows)表单的另一个原因。
我设置的尝试也以某种方式对位于
的 AppxManifest.xml 文件产生了影响..\source\repos\AppTest2\AppTest2\bin\AnyCPU\Debug\AppxManifest.xml
有没有人建议为什么我的应用程序项目(即使是入口点)不想从我的 1. 程序部分了解任何内容? (它只是没有运行,而是第二个程序 WPF)
【问题讨论】:
【参考方案1】:@ Knally。根据我的测试,我在 MSIX 模板中使用 Windows 窗体项目作为入口点,它打开 Windows 窗体项目并在单击按钮时加载 WPF 用户控件。您可以检查步骤是否与您的一致。如果有任何问题,请告诉我。
这是我在 .wapproj 文件中的代码:
<EntryPointProjectUniqueName>..\WindowsFormsApp1\WindowsFormsApp1.csproj</EntryPointProjectUniqueName>
步骤:
-
创建名为 WpfApp1 的 WPF 应用程序项目并构建到 WpfApp1.dll。
【
1.新建一个WPF应用项目
2.添加用户控件
3.创建控件
4.在解决方案资源管理器中删除Window1和App文件
5.Project > WpfApp1 Properties > Application > Output Type = Class Library
6.构建解决方案... .dll 文件位于 bin/Release 文件夹中 】
2.创建名为WindowsFormsApp1的Windows Forms App并添加引用MyControl.dll。
【在WindowsFormsApp1中右键References->选择Add Reference…->选择Browse->找到并添加WpfApp1.dll->点击OK】
Form1.cs 代码:
using System;
using System.Windows.Forms;
using System.Windows.Forms.Integration;
using WpfApp1;
namespace WindowsFormsApp1
public partial class Form1 : Form
public Form1()
InitializeComponent();
private void button1_Click(object sender, EventArgs e)
ElementHost host = new ElementHost();
host.Dock = DockStyle.Bottom;
UserControl1 myControl = new UserControl1();
host.Child = myControl;
this.Controls.Add(host);
3.创建名为 WapProjTemplate1 的 Windows 应用程序打包项目。
【
】1.右键Applications->点击Add Reference…->选择WindowsFormsApp1->点击OK
2.双击Package.appxmanifest->点击Packaging->点击Choose Certificate…->点击 创建...->输入密码->确定
3.修改您的配置管理器,如下所示:
4.右键WapProjTemplate1->选择Publish->选择Create App Packages…->选择上的Release for Architecture选择和配置包向导如下:
结果:
【讨论】:
非常感谢您的示例。我很感激。我试图将我的 WPF 项目输出更改为 .dll。但是当我这样做时,我无法再构建该项目,因为它抱怨它找不到所有 WPF 设计元素名称(如标签、滑块、按钮)的任何定义。由于我的 WPF 项目有点“完成”单元,我不想对它做任何大的改变。有没有简单的解释为什么我的元素名称在调试时找不到?以上是关于Visual Studio MSIX 应用创建:入口点 (.exe) 不正确的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 中导入 Appcelerator Windows Phone 项目
应将哪些 Visual Studio 2013 项目文件签入源代码管理?
在 Visual Studio 中导入工作的科尔多瓦项目给出错误
用于在Visual Studio中签入当前文件的键盘快捷方式