我正在为Windows 10创建一个UWP应用程序,使用语音API,但编译时出现奇怪的错误。情况如下:
一个针对Windows 8.1的PCL项目(在创建项目时将Windows 10设置为目标,但Visual Studio会降级为Windows 8.1,因为“它们支持相同的便携式API集”),并引用了“Windows.Foundation.UniversalApiContract”,因为它包含语音API(Windows.Media.SpeechRecognition和Windows.Media.SpeechSynthesis);
一个UWP应用程序,引用了PCL项目,该UWP不使用语音API,我仅在PCL项目中使用它。
PCL项目已经成功构建,但当我构建UWP项目时,会出现很多错误,比如“Windows.Foundation.UniversalApiContract.winmd文件包含类型‘XXXXX’。使用Windows命名空间是保留的。”我认为这个错误是由于PCL项目的引用引起的。
我试图直接从UWP应用程序调用语音API,似乎可以工作,但我不喜欢这样做,因为我更喜欢将应用程序逻辑放在其他库项目中,以防将应用程序移植到其他平台。
我不知道该怎么办。如果PCL针对Windows 8.1,则必须能够在没有像在UWP项目中添加引用的情况下使用语音API,对吗?有没有解决方法来强制PCL仅针对Windows 10?我错了,应该使用其他项目类型而不是PCL吗?
一个针对Windows 8.1的PCL项目(在创建项目时将Windows 10设置为目标,但Visual Studio会降级为Windows 8.1,因为“它们支持相同的便携式API集”),并引用了“Windows.Foundation.UniversalApiContract”,因为它包含语音API(Windows.Media.SpeechRecognition和Windows.Media.SpeechSynthesis);
一个UWP应用程序,引用了PCL项目,该UWP不使用语音API,我仅在PCL项目中使用它。
PCL项目已经成功构建,但当我构建UWP项目时,会出现很多错误,比如“Windows.Foundation.UniversalApiContract.winmd文件包含类型‘XXXXX’。使用Windows命名空间是保留的。”我认为这个错误是由于PCL项目的引用引起的。
我试图直接从UWP应用程序调用语音API,似乎可以工作,但我不喜欢这样做,因为我更喜欢将应用程序逻辑放在其他库项目中,以防将应用程序移植到其他平台。
我不知道该怎么办。如果PCL针对Windows 8.1,则必须能够在没有像在UWP项目中添加引用的情况下使用语音API,对吗?有没有解决方法来强制PCL仅针对Windows 10?我错了,应该使用其他项目类型而不是PCL吗?