C# Visual Studio MSIX应用程序创建:入口点(.exe)不正确
我制作了一个Windows窗体项目,它承载一个WPF用户控件(某种3D视口),基本上是两个“独立”的项目。 将这两个功能结合到一个主项目中确实有效,我可以使用Windows窗体应用程序访问Wpf。 在下一步中,我想按照VisualStudio2019的建议创建一个“MSIX”应用程序。因此,我插入了一个“第三个”项目模板(MSIX项目模板),并设置了官方指南中的参考。这主要是将我的“主”Windows窗体程序链接为MSIX模板中的应用程序,并将其设置为应用程序的“入口点” 我的WPF程序在我的主程序中被引用,因此我不必再次在MSIX模板中链接它。 到现在为止,一直都还不错。调试也不会带来任何错误。 但调试器并没有按照定义的入口点打开主程序(即WinForms),而是只打开WPF应用程序(实际上只能通过Windows Forms程序中的按钮单击事件访问该应用程序) 在.wapproj文件中:C# Visual Studio MSIX应用程序创建:入口点(.exe)不正确,c#,wpf,forms,visual-studio,msix,C#,Wpf,Forms,Visual Studio,Msix,我制作了一个Windows窗体项目,它承载一个WPF用户控件(某种3D视口),基本上是两个“独立”的项目。 将这两个功能结合到一个主项目中确实有效,我可以使用Windows窗体应用程序访问Wpf。 在下一步中,我想按照VisualStudio2019的建议创建一个“MSIX”应用程序。因此,我插入了一个“第三个”项目模板(MSIX项目模板),并设置了官方指南中的参考。这主要是将我的“主”Windows窗体程序链接为MSIX模板中的应用程序,并将其设置为应用程序的“入口点” 我的WPF程序在我的主
<EntryPointProjectUniqueName>..\..\Visu 2.0 Core\Visu 2.0 Core\Visu 2.0 Core.csproj</EntryPointProjectUniqueName>
<EntryPointProjectUniqueName>..\WindowsFormsApp1\WindowsFormsApp1.csproj</EntryPointProjectUniqueName>
有人建议我的应用程序项目(即使是入口点)不想从我的1中了解任何东西吗。节目部分?(它只是不运行,而是运行第二个程序WPF)@Knally。根据我的测试,我在MSIX模板中使用Windows Forms Project作为入口点,它打开Windows Forms Project,单击按钮时加载WPF用户控件。您可以检查这些步骤是否与您的一致。如果有什么问题,请告诉我 以下是我在.wapproj文件中的代码:
<EntryPointProjectUniqueName>..\..\Visu 2.0 Core\Visu 2.0 Core\Visu 2.0 Core.csproj</EntryPointProjectUniqueName>
<EntryPointProjectUniqueName>..\WindowsFormsApp1\WindowsFormsApp1.csproj</EntryPointProjectUniqueName>
3.创建名为WapProjTemplate1的Windows应用程序打包项目
【
1.右键单击应用程序->单击添加引用…->选择windowsformsap1->单击确定
2.双击打包。appxmanifest->点击打包->点击选择证书…->点击
创建…->输入密码->确定
3.修改Configuration Manager,如下所示:
4.右键单击WAPProjectTemplate1->选择发布->选择创建应用程序包…->在选择和配置包向导上选择架构发布,如下所示:
结果是:
非常感谢您的示例。我很感激。我曾尝试将WPF项目输出更改为.dll。但当我更改时,我无法再构建该项目,因为它抱怨无法找到所有WPF设计元素名称(如标签、滑块、按钮)的任何定义。因为我的WPF项目有点“完成”我不想对它做任何大的修改。有没有一个简单的解释,为什么调试时找不到我的元素名?
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);
}
}
}