问题标签 [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 投票
1 回答
3139 浏览

c# - Newtonsoft.json 序列化和反序列化基/继承,其中类来自共享项目

所以我有两个像下面这样的类。它们都在同一个命名空间和同一个共享项目中。

当我将这些项目序列化为rabbitmq时,我将序列化为基类,如下所示:

但是,在反序列化时我遇到了问题。我希望能够做如下所示的事情,我将反序列化为基类,然后检查它是否是继承的类型。

类型检查:

反序列化设置:

反序列化逻辑:

结果:上述代码失败,因为 $type 属性包含程序集名称,并且在 rabbitmq 的每一端,程序集名称不同,因为类位于共享项目中。

示例错误:

0 投票
3 回答
4035 浏览

c# - 共享项目和资源文件

我们有一个共享项目的解决方案,该项目被其他两个项目引用。

在共享项目中,我们有resx文件,但我们注意到Designer.cs在 resx 中添加或修改术语时,代码隐藏文件没有更新。显然,共享项目不支持为嵌入式资源生成自定义工具 (ResXFileCodeGenerator)。

我一直在寻找很长一段时间来克服这个限制。我尝试使用所有资源文件创建一个类库,但后来我偶然发现了无法在共享项目中添加对该类库的引用的问题。

有谁知道我该如何解决这个问题?在类库中拥有资源文件,并且能够在我们共享的项目视图中使用它们?

--

除了上面的问题,resx当我们自己在Designer.cs文件中添加代码时,我们可以让文件在项目上工作,但看起来仍然存在一些问题。

例如,在视图中,我们可以通过命名空间和术语名称获取翻译,但在 IDE 中它们显示为红色(不可解析)。但是,如果我们运行应用程序,它会正常工作。

更新:resx在运行应用程序时,我能够在我的视图中显示一个单独项目中的文件的翻译。但是,在视图所在的共享项目中,我对resx文件的引用仍显示为红色。这可能是因为共享项目没有对翻译项目的引用。一旦构建,具有参考的“真实”项目可以找到resx翻译,因此在运行应用程序时没有问题。

有什么方法可以告诉 Visual Studio 我的共享项目使用resx来自单独的类库的文件,以便它找到术语并且不会在我的引用下划线?让智能感知工作会很好。


根据评论中的要求,请参阅我的视图/Html 代码片段:

然后查看此屏幕截图,其中无法识别引用:

未找到参考资料

另请注意,也无法识别 ViewBag。但是在运行时,一切都按预期工作......

0 投票
1 回答
381 浏览

xamarin - Xamarin.Forms 共享项目 Web 服务

如何将 Web 服务引用添加到共享或可移植项目以将其自动添加到其他项目(Android、IOS、Windows Phone)?

0 投票
0 回答
97 浏览

c++ - 在编译共享项目中的单个文件时选择使用哪个编译器?

我有一个 Windows 项目、一个 Linux 项目和一个由前两个项目引用的共享项目。

我已经设置了使用远程调试器构建 Linux 项目所需的一切。现在,当我尝试在共享项目 (Ctrl+F7) 中单独编译文件时,它默认尝试使用远程编译器进行编译。在编译共享项目中的单个文件时,有什么方法可以选择使用哪个编译器?

0 投票
2 回答
701 浏览

c# - 共享项目 - 未编译

最近我了解了共享项目以及如何将我的大块代码(即:我所有的 UI 控件)分离到另一个区域以清理我的主代码,而无需在我的执行路径中添加一个 dll。太棒了,除了它只部分有效。

如果我将代码从我的主项目移动到共享并更改命名空间(到共享的),事情仍然有效。但是当我直接在共享项目中创建一个新文件时,只有那个文件才能看到它自己。

只有在多次关闭VS,重新编译,删除共享项目,牺牲一只鸡之后,​​才可能终于看到了类。主要是浪费时间而没有吸取教训。

在仍然使用共享项目的同时查看我的新文件的快速途径是什么?

== 重现步骤

  1. 创建一个新项目(在本例中为 WinForms)

  2. 在主项目中创建共享项目+在主项目中添加引用

    • 请注意,共享项目位于父项目的子文件夹中,以保持内容井井有条
  3. 在共享项目中创建一个类并尝试在最小项目中使用它

截屏

0 投票
1 回答
1814 浏览

c# - VS2017 无法添加对共享项目的引用/共享项目为空

我刚刚遇到这种情况,并认为我会分享它以防您节省一些时间。

我在 VS2017 中有一个相当大的解决方案,并且有一个包含一些通用代码(例如枚举)的共享项目。

我只是尝试将我的共享项目添加到另一个项目(右键单击项目,添加引用并转到共享项目部分)并注意到共享项目是空的。它没有给我共享项目作为选项。

请看下面我的回答...

0 投票
1 回答
272 浏览

xamarin - 骑手上的 Xamarin 共享项目?

JetBrains Rider 是否支持 Xamarin 共享项目?

我知道 Rider 支持 Xamarin iOS 和 Android 应用程序,但我想知道我是否可以像使用 Visual Studio 一样在这里使用代码共享。我搜索了 JetBrains 网站,找不到任何东西。

0 投票
1 回答
379 浏览

android - Xamarin 与多个 Android 和 iOS 应用程序共享基础 Android 和 iOS 项目

我设置了一个项目,以便我可以为每个客户提供不同风格的应用程序,并且我正在尝试简化我们的设计。目前它已经设置好了,所以我们有我们的 PCL,然后是每个客户端的 Android 和 iOS 项目。这意味着如果我们更改应用程序端代码的任何内容,我们必须在每个项目中手动更改它。

我一直在尝试改变它,所以我们有我们的 PCL 和一个基本的 Android 和 iOS 项目,它具有平台特定的接口代码,然后每个其他项目及其各自的颜色样式、图像和包标识符都可以继承。

例如

  • PCL 项目(共享代码、表格等)
  • Android.Shared(Android 应用程序/平台特定代码的共享资源/本地化)
  • Android.Client1Theme(Client1 的自定义资源(徽标、颜色等))
  • Android.Client2Theme(Client2 的自定义资源(徽标、颜色等))

  • iOS.Shared(Android 应用程序/平台特定代码的共享资源/本地化)

  • iOS.Client1Theme(Client1 的自定义资源(徽标、颜色等))
  • iOS.Client2Theme(Client2 的自定义资源(徽标、颜色等))

只需创建一个新的 android 项目并添加对共享 android 项目和 PCL 的引用,我就可以让它适用于 Android。

我无法以同样的方式为 iOS 工作。很接近了,iOS 应用程序编译为具有正确样式的新应用程序,但是 DependencyService 在尝试访问接口方法时崩溃。

DependencyService.Get<ISystemFunctions>().ToggleTorch();

iOS接口访问抛出异常

下面是我在共享项目中的接口代码,但我认为这不是问题,而是 DependencyService 找不到它。

让我知道是否还有其他我可以分享的信息来帮助解决这个问题。

0 投票
1 回答
691 浏览

c# - WPF从共享项目访问图像路径

我有一个 WPF 应用程序(项目 A),其中有一个资源字典文件 Global.xaml。在这个文件中,我指的是

上面的行引用了下面路径中的图像

现在我将图像移动到共享项目(共享项目 A)并在项目 A 中被引用。那么 UriSource 是什么?

我尝试提供共享项目的组装 A;component/Images/Test.png

但它不是从共享项目中获取图像。

0 投票
1 回答
753 浏览

visual-studio - 为什么我不能在 Xamarin Forms 中选择 PCL 项目?

在创建一个新项目的那一刻,只有共享项目和标准.NET 出来了。

之前只能选择共享项目和PCL项目。