如何使用 net core / net5+ 为 wpf 设置 STA 公寓状态? [复制]
Posted
技术标签:
【中文标题】如何使用 net core / net5+ 为 wpf 设置 STA 公寓状态? [复制]【英文标题】:How to set STA apartment state for wpf with netcore / net5+? [duplicate] 【发布时间】:2021-10-02 18:19:53 【问题描述】:通常只需在 Main
方法上添加 [STAThread]
即可完成 - 但是对于新项目,就没有这些了吗?
当我尝试像这样设置自己的程序入口点时:
class Program
[STAThread]
static void Main(string[] args)
var application = new App();
application.Run();
它表示找到多个程序条目。所以是的 - 使用旧的 .net wpf 这可行,如何使用 netcore3/net5+ 呢?
【问题讨论】:
“使用旧的 .net wpf 这行得通” - 不清楚你的意思。 “旧” WPF 和 .NET Core 版本的 WPF 工作方式完全相同:为您生成程序入口点,如果您尝试自己显式创建入口点,则会出现错误。跨度> 【参考方案1】:您不需要 - 自动生成的 Main
方法已经有了。
您可以在相应的obj
目录中找到生成的文件。例如,我刚刚从WpfSta
目录运行dotnet new wpf
,这是作为obj/Debug/net5.0-windows/App.g.cs
的一部分生成的:
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "5.0.6.0")]
public static void Main()
WpfSta.App app = new WpfSta.App();
app.InitializeComponent();
app.Run();
您可以编写自己的Main
方法,然后使用项目文件中的StartupObject
属性来指定入口点。但如果只是为了添加STAThread
,则不需要。
【讨论】:
以上是关于如何使用 net core / net5+ 为 wpf 设置 STA 公寓状态? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
.Net Core WebApi 目标框架“net5.0”在构建应用程序时解释为“net50”
如何在 .NET Core 3.0 SDK 上构建多目标 .NET 5 和 .NET Core 3.1
如何在 ASP.NET Core 中设置 cookie validateInterval?
.NET Core/.NET5/.NET6 开源项目汇总3:工作流组件
Core 2.1 和 .net5 中的 Encoding.Default.GetString 不等于字符串,来自等于字节数组