我在我的应用程序中使用了对<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Description.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Description.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Description.</string>
的引用,这将允许我添加将Word文档转换为PDF的功能。只有少数最终用户才能使用此功能,而这些用户都将拥有MS Office。
在没有Office的工作站上启动应用程序时会发生什么?应用程序会立即失败还是仅在调用Interop方法时失败?
答案 0 :(得分:2)
它应该在需要从互操作库中加载类型信息时失败。通常在编译调用互操作方法的任何函数时。假设您没有通过自己的任何方法参数,接口,基类等泄漏任何类型的数据。
这通常意味着您要编写如下内容:
if(OfficeAvailable)
{
DoOfficeWork();
}
else
{
Fallback();
}
而不是:
if(OfficeAvailable)
{
var app = new Outlook.Application();
app.DoSomething();
}
else
{
//Do other things
}
即将Office交互推入专用方法中,如果您不使用Office,您甚至不尝试调用,而不是尝试通过单个功能检测并有条件地使用Office inline。 / p>