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 文档中没有提到它。
要解决此问题绑定项目不得与主项目位于同一解决方案中。只需删除它们并将库附加为常规参考。
我有一个静态库,它被 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 文档中没有提到它。
要解决此问题绑定项目不得与主项目位于同一解决方案中。只需删除它们并将库附加为常规参考。