问题标签 [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 回答
41 浏览

c# - 防止移动项目在共享项目中使用某些 .cs 文件

我正在制作一个移动应用程序。在我的解决方案中,我有一个共享项目。我不想在我的 iOS 或 Android 版本中使用一些文件。

我的代码看起来像这样:

这似乎不会为我的移动应用程序删除此文件。它仍然希望我获得那些 nuget Azure.Storage 包。我怎样才能让#if 以我想要的方式工作?

0 投票
1 回答
74 浏览

xamarin.forms - Xamarin Forms:获取存储在共享项目中的图像文件的路径?

我正在尝试ByteArrayContent通过我的网络服务上传图像文件。我已将所有图像添加到共享项目并将构建操作设置为Embedded resource.

以下是我的代码:

当我像上面那样尝试时,我得到了System.IO.FileNotFoundException: Could not find file "/Projectname.Avatars.ic_avatar01_xx.png"

将图像直接添加到共享项目的文件夹中,如下图所示。

在此处输入图像描述

我尝试更改 . 在文件路径中带有 / ,如下所示:

但在那种情况下,我得到了System.IO.DirectoryNotFoundException: Could not find a part of the path "/Avatars/ic_avatar01_xx.png"

获取存储在共享项目中的图像文件路径的正确方法是什么?

还尝试了另一种方法:

但在上述情况下,我收到以下错误:

在此处输入图像描述

0 投票
1 回答
57 浏览

c# - Visual Studio 项目正在引用已删除的共享项目

我有一个包含多个项目的 Visual Studio 解决方案。对于其中一些项目,我引用了一个共享项目,该项目已被删除。但是,Visual Studio 项目似乎仍在引用这个已删除的共享项目。

我正在使用的特定类型存在于共享项目和引用的 NuGet 包中。即使依赖项中的任何地方都没有共享项目的迹象,我仍然得到一个模棱两可的类型错误。此外,在项目.cs文件中使用 Intellisense 自动完成时,共享项目将自动完成。但是,当我通过共享项目的名称空间搜索整个解决方案时,没有结果。更奇怪的是,共享项目所在的整个文件夹,已经被删除了。这些文件实际上不再在我的磁盘上。

我已经尝试删除所有binobj文件夹,以及.vs文件夹,但没有任何改变。

0 投票
0 回答
70 浏览

visual-studio - 如何将引用和包添加到 Visual Studio 解决方案中的 shproj 或共享项目?

我有一个带有共享项目和许多依赖它的项目的 Visual Studio 解决方案。共享项目本质上是整个解决方案的“体量”,而csprojs基本上是共享项目的“扩展”。它看起来像这样。

  • .sln 文件
    • 依赖于一些包和库的 shproj
    • csproj1 依赖于 shproj,因此必须导入 shproj 依赖项
    • csproj2 依赖于 shproj,因此必须导入 shproj 依赖项
    • ...
    • csprojN 依赖于 shproj,因此必须导入 shproj 依赖项

如您所见,这并不理想。如果我想让共享项目依赖于另一个包,我必须将它添加到所有 csproj 项目中。

有没有办法直接将包添加到共享项目中?尽可能使用 Monodevelop。如果没有,在这种情况下是否有其他解决代码重用问题的方法比共享项目更好?

0 投票
1 回答
101 浏览

xaml - Uno Platform - 共享项目中的参考资源字典

我正在构建一个 Uno 应用程序,需要引用在共享项目中定义和存储的资源字典。

该项目是这样设置的:

项目结构

在 中MainPage.xaml,我正在使用:

这会导致错误消息Cannot locate resource from 'ms-appx:///LaunchShowcase.Shared/Themes/CenteredPivotHeadersStyle.xaml'

引用此资源字典的正确方法是什么?

0 投票
1 回答
44 浏览

shared-project - Visual Studio 在发布时成功使用共享项目 wwwroot 文件,但在构建/运行时没有成功

的背景

我在 Visual Studio 2019 中工作。我有一个 C# Web APP Razor Pages 项目,它引用了几个 C# 类项目和一个 C# 共享项目,用于其他几个相关 Web 应用项目中常见的文件。

问题

当我将 Web 应用程序项目发布到我的本地或远程 IIS 实例时,没有问题,所有共享项目文件都存在并按预期工作。

但是,当我“只是”构建/运行然后在浏览器中查看它时,共享项目 Helper 和 Pages 符合预期,但共享项目 wwwroot 文件在操作中都丢失了。

想要的

每次我需要查看/解决共享项目中的任何问题时,我都可以但不希望必须在本地发布,所以......

我想找到一种方法,让共享项目 wwwroot 文件夹资产可用于构建/运行- 并且 - 能够以不对其当前工作的发布过程产生不利影响的方式进行操作预期的。

迪茨

相关项目的示例文件夹结构(可能是 tmi,但足够详细,如果我必须对从一个项目到另一个项目的路径做一些事情,这些相对路径对于制作示例来说足够正确)......


  • 网吧
    • 万维网根
      • 我的名字软件
        • wwwroot <--来自 web 应用程序和共享项目的所有 wwwroot 文件最终都在Publish上,是的

  • 我的名字
    • MyName.Common.Domain
      • MyName.Common.Domain.csproj 文件
        • 各种文件夹和带有类的子文件夹
    • MyName.Common.Presentation.Web
      • MyName.Common.Presentation.Web.shproj 文件
      • 助手 <-- 工作正常
      • 页面 <-- 工作正常
      • wwwroot <--- 这些文件在发布时可用,但在构建/运行时不可用
    • 一个容器文件夹
      • 其他不相关的东西
      • 我的名字.软件
        • 我的名字.Software.sln
        • 解决方案中包含的相关项目的各种其他 MyName.Software.{Purpose} 文件夹
        • 我的名字.Software.Web
          • 各种其他文件夹和子文件夹
          • wwwroot <-- 这些文件在Build/RunPublish上都可以按预期使用
          • MyName.Software.Web.csproj 文件

从这往哪儿走

当我列出我尝试过的东西和我遇到的问题时,有些事情已经到位。喜欢这个过程,讨厌预处理过程。所以我已经在这里回答了我自己的问题,但会继续发布这个,以便我稍后可以参考它,所以也许它会帮助其他人保持一些头发。此外,如果有其他方法可以做到这一点,请带上他们——考虑替代方案总是好的。:0)

0 投票
0 回答
20 浏览

windows - 与非代码文件一起使用时,在 Visual Studio 中构建共享项目时,有没有办法运行命令?

<PreBuildEvent>我确实尝试了添加标签的各种方法

<Exec>标记

在项目文件中,但 Visual Studio 2022 / MSBuild 似乎没有执行它。

从我阅读的文档中,甚至不清楚这是不受支持的场景还是只是我不理解共享项目。

我的想法是存储一个asset.zip文件,其中包含一系列图像和文件,我希望通过将资产文件夹添加到共享项目中,最终将这些图像和文件放在引用这个项目的bin文件夹中,如下所示:

并且仅在第一次构建时解压缩实际文件(我仍然需要弄清楚如何在将这些文件添加到项目后复制它们)。

0 投票
0 回答
28 浏览

c# - 在共享项目中包含所有文件夹文件

.NET Core 项目格式的优点之一是 *.csproj 文件不再包含要包含在项目中的文件列表,它只包含该文件夹中的所有内容。

但是共享项目仍然具有旧的 .NET Framework 项目格式,因为有一个 *.projitems 文件列出了要包含在项目中的文件

每次向项目添加新文件时,都会将其添加到 *.projitems 文件中,这通常会导致源代码管理冲突。

是否有某种方法可以忽略此 *.projiitems 文件并包含项目文件夹中的所有文件,例如 .NET Core 项目?

0 投票
1 回答
36 浏览

c# - 如何在 VS2019 中将共享项目添加到 WPF 项目中

我创建了一个 WPF 项目。由于项目已经变得足够大,我可以维护我希望将其代码分成几个共享项目。

那么我可以为 C# 和 WPF 添加/创建共享项目吗?

我问这个是因为我在新项目中找不到任何用于为 C# 和 WPF 创建共享项目的模板

在此先感谢阿米特·萨拉夫

0 投票
1 回答
42 浏览

visual-studio - 如何本地化 .net 共享项目

在 Visual Studio 中,您可以创建共享项目

Microsoft 是否设想过任何标准方法在共享项目中进行本地化?

我很确定我可以找到一种处理本地化的方法,但是在我发明自己的方法之前,很高兴知道是否有“官方”方法。

编辑

如果您对库进行本地化,则翻译应包含在库中。

如果您使用 .resx(或 .resw)文件中的资源字符串本地化文本,则资源文件必须包含在库中,并且必须有代码从 rignt 资源文件加载资源。

有两件事是不可能的。

  1. 仅在使用该库的组件中进行本地化。
    如果您用资源名称替换字符串文字,您正在更改源代码,这与使用库的整个想法背道而驰。

  2. 在库中使用资源名称,而不提供 .resx 文件。
    那个代码是行不通的。

Microsoft 论坛中有一个类似的问题。根据该页面上的讨论,在我看来微软没有为共享项目的本地化提供足够的支持。

我发现了一个有趣的例子,它是GitHub 上的项目 CodeMaid 项目

这是一个 Visual Studio 扩展,而不是 Xamarin 项目(共享项目不限于 Xamarin)。该项目包含一个资源文件 (Resource.resx) 和一个用于访问资源的代码文件 (Resources.resx.cs)。基于此,我假设可以在共享项目中包含 .resx 文件。

但是,似乎无法运行自定义工具 (PublicResXFileCodeGenerator) 来生成代码文件,并且在您编辑 .resx 文件时它不会自动运行。

我的猜测是,CodeMaid 的开发人员没有对资源文件进行任何更改,因为将其移动到共享项目中。