问题标签 [shared-project]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
749 浏览

xamarin.forms - 如何在 xamarin 表单共享项目中检查 Internet 连接

如何在 Xamarin 表单共享项目中检查 Internet 是否可用。

我们可以在 PCL 项目中使用交叉连接插件,我们可以在共享项目中使用相同的插件吗?

0 投票
0 回答
176 浏览

android - Xamarin Forms and Prism to native view - 从 prism 项目中的视图导航到共享项目中的视图

我的项目:

  • MyAppB(外部共享项目)

    • 包括从 ContentPage 扩展的多个视图(xaml 文件)
    • 使用例如 await Navigation.PushAsync(new Chat());
  • MyApplicationA(代码共享 - .NET Standard 2.0)

    • 使用 prism 框架构建 (Model-View-ViewModel)
    • 使用例如 await NavigationService.NavigateAsync("name", parameters);
  • 我的应用程序A.Android

    • 同时引用(MyApplicationA 和 MyAppB)-> 这是正确的吗?
  • 我的应用程序A.iOS

    • 同时引用(MyApplicationA 和 MyAppB)-> 这是正确的吗?

我的目标:我想从 MyApplicationA 中的视图或视图模型导航到 MyAppB 中的视图。

幸运的是,从 MyApplicationA 中的视图模型导航到 MyAppB 中的视图正在工作。

我在 MyApplicationA 中使用接口定义并在视图模型中调用它。该接口在 MyApplicationA.Android 和 MyApplicationA.iOS 中实现。

工作:导航我使用:App.Current.MainPage = new NavigationPage(new MainPage(screenCaptureIntent));//(意图是我必须从 MyApplicationA 导航到 MyApplicationA.Android 再到 MyAppB 的原因)

不工作:使用await App.Current.MainPage.Navigation.PushAsync(new MainPage(screenCaptureIntent));不起作用并给出以下错误:PushAsync 在 Android 上不受全球支持,请使用 NavigationPage。

但是我无法从 MyAppB 中的视图返回到 MyApplicationA 中的应用程序,例如加载数据的视图,在最好的情况下,它将是导航堆栈中的最后一页......

有人提示我如何解决这个问题吗?我做对了吗?或者我可以在 MyApplicationA 中引用 MyAppB - 但是设备特定代码会发生什么,例如#if __IOS__

谢谢丹尼尔

0 投票
0 回答
89 浏览

c# - 无法访问在同一个共享项目c#中定义的接口

我需要创建一个通用项目并将其用于多个应用程序。我以前为此使用过类库。所以这次,想探索一下Shared Project。我创建了一个共享项目。我创建了一个接口并想创建一个实现该接口的类。我无法在属于同一共享项目的类中引用创建的接口。但是,我可以在其他项目中使用此接口,其中我添加了共享项目的参考。

0 投票
2 回答
2740 浏览

c# - C# 在共享项目中使用引用/类库

我刚刚在 Visual Studio 2017 中学习并创建了一个共享项目。我注意到共享项目没有“引用”来引用其他资源(其他项目、类库……)。我什至看了一下 .shproj 文件,发现它只导入了我在共享项目中创建的类。

我的问题是,如果我想创建一个加载项应用程序,我需要使用类库来调用源软件公开的必要 API。如何将其他项目/类库(或一般资源)引用/添加到我的共享项目中?或者这甚至可能吗?

我的部分问题也在这里描述,参考来自其他共享项目的共享项目

但我需要一个更通用的解决方案。谢谢大家的帮助。

0 投票
1 回答
268 浏览

xamarin - 在共享项目中设置 AndroidResource 构建操作

我的 Xamarin.Android 项目中有很多共享资源(布局、可绘制等)。我想将这些共享资源放在一个集中的“共享项目”中。(由于某种原因,我不能使用 Xamarin 库项目类型。“共享项目”是我在这里唯一的选择)。但是,共享项目中的“构建操作”仅限于以下内容:

默认构建操作

有没有机会在这里使用“AndroidResource”构建操作?

0 投票
2 回答
69 浏览

c# - Windows 窗体引用和具有冲突导入类型的单例

我有以下项目的解决方案:

  • 模型:与模型共享的项目
  • App1:一个窗体应用程序
  • App2:另一个窗体应用程序

我正在尝试将当前在两个项目中重复的一些 UserControl 移动到一个名为 CommonUI 的通用项目中。所以:

  • 模型
  • CommonUI:参考模型
  • App1:引用模型和CommonUI
  • App2:引用模型和CommonUI

但这给了我很多警告,例如:

'[..]Model\AppState.cs' 中的类型 'AppState' 与 '[..]CommonUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 中的导入类型 'AppState' 冲突。使用 '[..]Model\AppState.cs' 中定义的类型

问题是 AppState 是一个单例,但它被重复了,App1 看到一个实例,CommonUI 看到另一个实例我现在有 2 个名为“AppState”的类,一个来自参考 App1->Model,另一个来自 App1->CommonUI - >模型。

我做错了什么?谢谢

0 投票
2 回答
1699 浏览

visual-studio - 共享项目选项完全从 Visual Studio 2019 中的 Xamarin.Forms 项目菜单中消失了吗?

几年以来,我一直在Visual Studio中使用Xamarin.Forms ,并且最近更新了我的IDEVS v. 16.3.7)。现在我意识到缺少了一些东西:共享项目选项。

当我通过向导创建新项目时,现在缺少是否要使用共享项目PCL (或 NetStandard)的问题(请参见下面的 VS 2017 屏幕截图)

现在缺少共享策略选择

我知道您仍然可以创建一个共享项目并手动添加一个iOS和一个Android项目,但这太麻烦了。我的问题确实是:微软继续将PCL /NetStandard 推到共享项目战略之上是否有原因?


我对这个决定感到特别困惑,因为早在 2016 年@miguel.de.icaza 就宣布他最喜欢的选项(在大多数情况下)是共享项目策略:

https://tirania.org/blog/archive/2016/Jan-22.html

对我来说,PCL 对于大多数用途来说太麻烦了。这就像用佳能杀死一只苍蝇。它强加了太多的限制(有限的 API 表面),迫使您跳过箍来完成一些非常基本的任务。

0 投票
1 回答
455 浏览

msbuild - 为什么 PackageReference 的引用不适用于 msbuild 和共享项目?

从 packages.config 迁移到 PackageReferences(.NET4.5 项目)后,构建(msbuild)被破坏。

错误 CS0246:找不到类型或命名空间名称“anynugetpackage”(您是否缺少 using 指令或程序集引用?)

使用 VisualStudio 进行构建可以完美运行。所以我做了一些研究,发现包的恢复也适用于 msbuild。

该问题仅存在于未正确应用 PackageReference 引用的共享项目 (.shproj) 中。

一种解决方法是添加对 PackageReference 的库的修复引用,但是像这样,与 packages.config 相比,我失去了 PackageReference 的所有优势

您可以查看项目和不同的解决方案(分支):

packages.config
PackageReference
PackageReference 解决方法

有关构建和错误日志,请参阅 github 操作。

有没有更好的处理方法?

0 投票
0 回答
792 浏览

xamarin - Xamarin 项目中 Xamarin.iOS 和 Xamarin.Android 的 IF 条件

我是 Xamarin 的新手,正在尝试创建 Liveswitch 项目(https://help.frozenmountain.com/docs/liveswitch/release-notes

项目:Liveswitch 演示项目有 Xamrine 项目,其结构如下:

我想创建 Xamrine 项目

当我尝试使用时。Xamarin 项目(这有 Chat.csproj)和代码 app.xaml.cs,如下所示:

它向我显示未找到 Intent 的错误。即它不允许我以不同的方式为 Android 和 iOS 的方法定义编写条件编码。

但在共享项目中,它允许我编写它。有什么办法可以在 Xamarin 项目中做到这一点?我正在为 MAC 版本 8.5 使用 Visual Studio

其他问题是如果我用户共享项目并尝试使用

LoadApplication(new App(screenCaptureIntent));

MainActivity.cs 无法在共享项目中找到文件。如何将共享项目的文件与 Xamarine 中的 android 和 iOS 项目中的文件连接起来。

0 投票
1 回答
82 浏览

mvvm - 我的大部分平台特定代码应该在 MVVM 中的什么位置?(旁边的视图)

我正在使用带有 MVVMLight 的 Uno-Platform 试图构建我的项目。我应该将特定于平台的代码放在 ViewModel 中吗?还是应该主要在 Utils/Services 中?