我只是Xamarin的新手,所以我尝试在Xamarin on-line guides创建简单的 Phoneword 应用程序。
在Visual Studio中创建的解决方案包含4个不同的项目:
这就是解决方案结构的样子:
现在在第一个项目中已经声明了一个接口:
namespace Phoneword
{
public interface IDialer
{
bool Dial(string number);
}
}
我现在尝试在UWP项目中使用此接口:
using Phoneword.UWP;
using System;
using System.Threading.Tasks;
using Windows.ApplicationModel.Calls;
using Windows.UI.Popups;
using Xamarin.Forms;
[assembly: Dependency(typeof(PhoneDialer))]
namespace Phoneword.UWP
{
public class PhoneDialer : IDialer
{
...
构建解决方案成功结束。但是当我尝试部署时 UWP项目我收到此错误:
无法找到类型或命名空间名称“IDialer”(是吗? 缺少using指令或程序集引用?)
任何人都可以告诉我这个错误的来源是什么吗?
更新
当我尝试部署时,还有一个错误:
错误DEP0700:应用注册失败。 [0x80070005]错误 0x80070005:从位置打开文件:AppxManifest.xml失败 错误:访问被拒绝。
我关闭了解决方案,退出Visual Studio启动并再次加载,第一个错误消失了。因此,在UWP项目中使用代码共享项目中声明的接口似乎没有任何问题。
我得到的实际错误是由于项目正在部署时文件夹的访问权限限制。
答案 0 :(得分:1)
您没有引用Phoneword
文件中的PhoneDialer.cs
。将其添加到顶部:
using Phoneword; // <== Add this
using Phoneword.UWP;
using System;
using System.Threading.Tasks;
using Windows.ApplicationModel.Calls;
using Windows.UI.Popups;
using Xamarin.Forms;
答案 1 :(得分:0)
我有类似的问题。修复它的方法只是重新启动Visual Studio或重新加载解决方案。
答案 2 :(得分:0)
我遇到了同样的问题,将其添加到顶部的代码中
使用静态Phoneword.MainPage;
它应该可以正常工作 它无法工作的原因是因为你没有引用它。由于某种原因,您为该课程导入的资产中没有此引用。
答案 3 :(得分:0)
有同样的问题。 您需要在解决方案资源管理器中右键单击Phoneword项目,然后单击“构建”以自行构建它。
然后将Phoneword项目的using语句添加到PhoneDialer文件中。
随后可以使用对IDialer的引用。