我已经升级到Intel上的MacOS Ventura,并且在调试器工作时遇到了麻烦。我使用的是Mac版Visual Studio 2022, 17.4.2(最新稳定版)。
复制:
- 我创建了一个默认的macOS应用程序(Mac ->应用程序→net)。这是一个Cocoa应用程序,使用。net 7。
- 点击"运行项目"。应用程序运行良好。
- 单击"开始调试项目"。在应用程序输出选项卡中,我看到许可消息"您只能使用……",然后什么也没有。应用程序无法启动。没有更多的消息。
查看控制台-我可以看到这个消息:
/用户/保罗/Dev/DotNetMacOSTestProject/TestDotNet7/bin/调试/net7.0-macos/osx-x64/TestDotNet7.app/内容/MonoBundle/libmscordbi.dylib"(cs_mtime:1671400321.653023908 == mtime:1671400321.653023908)(signed:1 validated:1 infected:1 nx:0 wmapping:0 dirty:0 depth:0)
下面是以下消息:
聚合。变换:StabilityCrashNumerator3肮脏:1事件:com.apple.stability.crash{"coalitionName"com.microsoft.visual-studio"exceptionCodes":"0 x0000000000000032,0x00000001094f0000(n 50,n 4451139584n)EXC_BAD_ACCESSSIGKILL(代码签名无效)UNKNOWN_0x32 at0 x00000001094f0000"incidentID":"85 f597c2 - 48 - cc adea - 77 - 4 - c55 - d3e588fae9"logwritten": 0,"process":"vsdbg-ui"responsibleApp":"VisualStudio"terminationReasonExceptionCode":"0 x2","terminationReasonNamespace":">合作设计","timestamp" 1671400809131127}
所以…可能的合作设计。
将项目切换到。net 6,我看到相同的结果-应用程序运行正常,但无法调试。我重新安装了visual studio -同样的结果。我可以从命令行运行vsdbg-ui,它启动了。
你知道哪里出了问题吗?或者我能做什么故障排除。谢谢。保罗
问题是,如果你在Mac上运行vsdbg和vsdbg-ui(用于跨平台调试。net核心代码的底层可执行文件)需要用可信证书重新进行代码签名。
请查看我在Github上打开的问题。
github用户@basilfx发布了一个临时解决方案,可能会解决您的问题。
他的答案适用于VS代码,但你只需要找到在你的情况下使用的可执行文件,并应用相同的修复。
为了方便起见,我将在下面重申他的回答,但这里是他在Github问题中的评论链接
创建自签名代码签名证书:
- https://stackoverflow.com/a/58363510/1423623
- 导航到调试器文件夹(在我的情况下,~/.vscode/extensions/ms-dotnettools.csharp-1.24.4-darwin-x64/.debugger/x86_64)
- 运行codesign——remove-signature vsdbg-ui &&codesign——remove-signature vsdbg
- 运行codesign -s my-codesign-cert vsdbg-ui &&codesign -s my-codesign-cert vsdbg
如果你曾经更新你的Visual Studio要小心,因为它也可能会替换vsdbg/vsdbg-ui可执行文件的新版本,你必须重新应用修复,因为你的代码签名的可执行文件已被替换。
在这一点上,长期解决方案取决于微软。编辑:另一种选择是强迫你的Mac停止执行"允许从App Store下载应用程序"one_answers"识别开发者";限制。
这是一个隐藏在系统参数设置中的选项->在Sierra和更早的版本中,隐私区域是可见的。
sudo spctl --master-disable
然后关闭任何已经打开的系统偏好设置应用程序,然后打开系统偏好设置->隐私→选项卡,你会看到现在有一个"Anywhere"选项下的"允许从:"下载应用程序"区域。
这有效地关闭了应用程序需要由开发人员签名的需要,所以这样做的风险由您自己承担!