iOS 项目在发布模式下不从绑定项目中引用静态库

iOS project doesn't reference a static library from Binding project when in Release mode

我有一个静态库,它被 Sharpie 用来生成包装代码。之后库构建成功(包括,生成*.dll)。

AppDefinition.cs 包含命名空间和映射,如下所示:

namespace TheNamespace
{
    // @interface TheParameters : NSObject
    [BaseType(typeof(NSObject))]
    interface TheParameters
    {

库本身以 LinkTarget.ArmV7 | LinkTarget.ArmV7s | LinkTarget.Arm64 的发布模式构建。

但是,当从我的 iOS 项目中引用此绑定项目时,它仅在调试模式下有效。 当我将其更改为 Release 时, 命名空间(以及所有相关的类)不可用 此外,当对象浏览器中浏览绑定库引用时,它不显示任何元素:它完全是空的。

只是指出:当在下拉列表中将其更改为 Debug 时可用,并在 Release 时消失,有趣的是,独立于在中选择的实际项目当前项目下拉菜单!

可能是什么问题?谢谢!

我认为问题应该出在构建静态库时。生成静态库时,构建类型为release/debug至select。

上面的截图是构建后的静态库类型,一共有三种(两种是Debug,一种是Release)。可以看到tt区分了release和debug。

经过一番谷歌搜索后,我找到了解决方案。 我猜这个问题是由于 Visual Studio 错误引起的。并且还提到了here。 (奇怪的是,微软网站上的 Xamarin 文档中没有提到它。

要解决此问题绑定项目不得与主项目位于同一解决方案中。只需删除它们并将库附加为常规参考。