【问题标题】:MonoTouch Linking Native References in Debug onlyMonoTouch 仅在调试中链接本机引用
【发布时间】:2012-07-24 18:18:35
【问题描述】:

我有一个 MonoTouch 项目,我想在其中包含对一些仅用于测试和调试的本机 ios 库的引用。我不需要将这些引用编译到发布版本中。

我已尝试编辑 .csproj 文件,为 ItemGroup 提供一个条件,该条件链接到本机引用中,但它们似乎被忽略了。

 <ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
<NativeReference Include="some path">
  <IsCxx>false</IsCxx>
  <Kind>Static</Kind>
</NativeReference>

我想可能有某种方法可以使用项目选项窗口中的附加 mtouch 参数选项。不过我不确定。

有谁知道我如何仅在 MonoDevelop 中为特定构建配置链接本机参考?

【问题讨论】:

    标签: xamarin.ios monodevelop static-linking native-code


    【解决方案1】:

    MonoDevelop 允许您为它为您的项目定义的每个配置提供不同的附加 mtouch 参数。一般来说,这意味着以下四个中的每一个:[Debug|Release]|iPhone[Simulator] 可以使用不同的设置。

    如果您手动添加静态库,则可以轻松地从特定目标中添加(或删除)它。

    但是,如果您使用的是通过新的 [LinkWith] 支持创建的绑定,那么这些额外的参数会自动为您创建。可能有办法解决这个问题(例如更改 Build Action),但我没有尝试过。

    【讨论】:

    • 不幸的是,我正在使用新的绑定,所以额外的参数是为我准备的。如果我查看 gcc_flags 的输出,那么我可以看到这些库正在被链接。我尝试添加到其他 mtouch 参数中的任何内容都无法改变这一点。
    • 您应该向bugzilla.xamarin.com 填写关于 MonoDevelop 的 enhancement 错误报告 - 这可能已经成为可能(但不容易发现 ;-) 或者应该成为可能未来(这是一个非常好的和有效的场景)。
    • 这就是我害怕的。我想现在我可以创建 2 个单独的项目:一个用于发布,一个用于调试构建。在调试项目中,我可以简单地链接来自其他项目的所有文件,并在那里添加本机引用。看起来几乎类似于使用 XCode 创建重复目标。
    猜你喜欢
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多