如何使用 Visual Studio for Mac 在 Xamarin.Forms 中实现多目标?

     2023-03-12     25

关键词:

【中文标题】如何使用 Visual Studio for Mac 在 Xamarin.Forms 中实现多目标?【英文标题】:How to multitarget in Xamarin.Forms with Visual Studio for Mac? 【发布时间】:2019-07-23 23:37:14 【问题描述】:

我开始创建一个 .NET Standard Library 并打算创建一个 NuGet - 但后来发现我还需要特定于平台的功能。

所以,我发现了this 堆栈溢出问题——这表明我可以改用Multiplatform Librarytemplate。但是在这里我遇到了problem with DependencyService - 和Custom Renderer 的问题 - 实际上意味着非平台特定的代码无法与库中的特定平台代码进行通信。

我还尝试编辑 csproj 文件,例如:A、B、C。并通过使用以下 csproj:

<Project Sdk="MSBuild.Sdk.Extras/2.0.29">
  <PropertyGroup>
    <TargetFrameworks>netstandard2.0;Xamarin.ios10</TargetFrameworks>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Xamarin.Forms" Version="4.1.0.581479" />
  </ItemGroup>
</Project>

...生成以下解决方案:

但在 Class1 中,Xamarin.iOSXamarin.Forms.Platform.iOS 可以在 Visual Studio for Mac 中访问。我最近检查并可以看到它在 Windows 上的 Visual Studio 中工作 - 使用相同的 csproj。

有没有办法在Visual Studio for Mac中进行多目标?


编辑 1: 我在 GitHub 上的 MSBuild.Sdk.Extras 上找到了一个 issue,指向了这个 post。似乎可以安装某个扩展名为DotNetCoreSupportAnyTargetFramework.DotNetCoreSupportAnyTargetFramework_1.0。但它不会在 VSfM 8.1.5 中正确安装:

在较旧的 VSfM 中试用它我无法打开项目或创建新项目 - 所以我无法测试扩展是否有效。它可能与以下错误消息有关:

在打开旧的 VSfM 时显示。


编辑 2: 更改目标框架的顺序后 - 将 Xamarin.ios10 放在首位 - Xamarin.iOS 和 Xamarin.Forms.Platform.iOS 变得可访问 - 正如 Matt Ward 所述.

但是,我无法将 NetStandard 库的引用添加到 Xamarin.Forms 项目以实际测试该库:

然后切换回首先放置 netstandard:

Projects/MyStandardLibrary/MyStandardLibrary/MyButtonRender.cs(12,12):错误 CS0246:找不到类型或命名空间名称“ExportRendererAttribute”(您是否缺少 using 指令或程序集引用?) (CS0246) ( MyStandardLibrary) 等。

【问题讨论】:

您可以通过右键单击解决方案尝试unloadreload 吗? 没有重新加载解决方案的选项。但我可以卸载 - 加载项目。它没有帮助。 But in Class1 the Xamarin.iOS nor Xamarin.Forms.Platform.iOS can be accessed in Visual Studio for Mac 是什么意思?通过访问,您是在谈论在文本编辑器中选择该框架吗?这还不支持。唯一的解决方法是编辑 .csproj 并更改目标框架的顺序。目前只有第一个在文本编辑器中使用。 希望 Visual Studio for Mac 8.3 中包含文本编辑器中的多目标支持 - docs.microsoft.com/en-us/visualstudio/productinfo/… 多平台库项目是一种创建 NuGet 包的方法。多平台库解决方案中的每个项目都有一个目标框架。它们本身不是多目标框架项目。 【参考方案1】:

Visual Studio for Mac 的当前版本 v8.2 不支持多目标。

根据Visual Studio for Mac Roadmap,Visual Studio for Mac v8.3 将提供多目标支持:

https://docs.microsoft.com/visualstudio/productinfo/mac-roadmap#2019-q3-july-september

编辑:您可以在此处关注团队添加多目标支持的进度:https://github.com/mono/monodevelop/pull/7848

【讨论】:

我发现它有点混乱,因为有一个模板:docs.microsoft.com/en-us/xamarin/cross-platform/… 据说似乎可以做到这一点。但正如我在问题中所说,它似乎无法正常运行。 @lolelo Goo catch - 看起来模板添加的有点过早。在答案中,我添加了一个指向 PR 的链接以支持多目标。看起来团队已经接近了!

如何使用 Visual Studio for Mac 在 Xamarin.Forms 中实现多目标?

】如何使用VisualStudioforMac在Xamarin.Forms中实现多目标?【英文标题】:HowtomultitargetinXamarin.FormswithVisualStudioforMac?【发布时间】:2019-07-2323:37:14【问题描述】:我开始创建一个.NETStandardLibrary并打算创建一个NuGet-但后来发现我还需要... 查看详情

如何在 Visual Studio for C++ 中更改工作目录

】如何在VisualStudioforC++中更改工作目录【英文标题】:Howtochangetheworkingdirectoryinvisualstudioforc++【发布时间】:2020-10-0215:30:17【问题描述】:通常,我将所需的所有资产放在项目文件夹中,每当我使用VisualStudio调试器运行它时,它... 查看详情

如何使用 Xamarin for Visual Studio 2013 为我的 iOS 应用程序构建 IPA 文件

】如何使用XamarinforVisualStudio2013为我的iOS应用程序构建IPA文件【英文标题】:HowdoibuildanIPAfileformyiOSappwithXamarinforVisualStudio2013【发布时间】:2015-02-2122:09:21【问题描述】:如何从VisualStudio2013为我的XamariniOS应用程序生成IPA文件?我... 查看详情

如何将 Visual Studio for Mac Project 连接到 Azure Data Studio 数据库?

】如何将VisualStudioforMacProject连接到AzureDataStudio数据库?【英文标题】:HowtoconnectVisualStudioforMacProjecttoAzureDataStudiodatabase?【发布时间】:2022-01-0214:51:22【问题描述】:我正在使用M1MaxMacBook,并且正在使用docker运行AzureSQLEdge。我在Az... 查看详情

如何在不同文件中使用 #define 等宏在 Visual Studio for C++ 中生成重复代码

】如何在不同文件中使用#define等宏在VisualStudioforC++中生成重复代码【英文标题】:HowtogeneraterepeatedcodeinVisualStudioforC++usingmacroslike#defineindifferentfiles【发布时间】:2021-08-0604:46:01【问题描述】:我需要在一个文件中编写代码,例如... 查看详情

如何在 Visual Studio for Mac for Xamarin 中添加更多 android 模拟器设备?

】如何在VisualStudioforMacforXamarin中添加更多android模拟器设备?【英文标题】:HowcouldIaddmoreandroidemulatordevicesinVisualStudioforMacforXamarin?【发布时间】:2019-10-0802:54:39【问题描述】:我想使用VisualStudioforMac添加一些新的Android虚拟设备,... 查看详情

开始使用 Blend for Visual Studio 2012 文档 .pdf [关闭]

...losed]【发布时间】:2015-04-3017:07:20【问题描述】:您好:如何从Microsoft网站以.pdf格式下载“VisualStudio2012Blend入门”文档?当我想要这个文档时,我不想一直使用互联网. 查看详情

如何使用 Visual Studio Tools for Git 将跟踪的文件移动到未跟踪的位置

】如何使用VisualStudioToolsforGit将跟踪的文件移动到未跟踪的位置【英文标题】:HowtoMoveaTrackedFiletoUntrackedusingVisualStudioToolsforGit【发布时间】:2015-04-3018:33:07【问题描述】:开始尝试git。无意中将项目中的所有文件添加到团队资源... 查看详情

如何在 Visual Studio 2017 for Unity 中启用智能感知 [重复]

】如何在VisualStudio2017forUnity中启用智能感知[重复]【英文标题】:HowtoenableintellisenseinVisualStudio2017forUnity[duplicate]【发布时间】:2018-01-2017:06:20【问题描述】:我刚刚开始使用Unity进行编程。我最近在Zorin12上安装了VisualStudioCode2017... 查看详情

如何在 Visual Studio for Mac 中将参数传递给 Main() C#

】如何在VisualStudioforMac中将参数传递给Main()C#【英文标题】:HowtopassparameterstoMain()C#invisualstudioformac【发布时间】:2017-01-2103:43:42【问题描述】:我查看了其他版本的VisualStudio的不同资源,但我不清楚如何在这里使用arg调用Mainusing... 查看详情

gMock for Dummies - 如何开始? (Visual-Studio-2019)

】gMockforDummies-如何开始?(Visual-Studio-2019)【英文标题】:gMockforDummies-HowtoGettingStarted?(Visual-Studio-2019)【发布时间】:2019-07-3109:11:09【问题描述】:我尝试按照gMockforDummies的入门创建一个非常简单的Mock类。我在VSStudio2019中新建了一... 查看详情

使用 API for Visual Studio Team Services 添加附件(之前是 Visual Studio Online)

】使用APIforVisualStudioTeamServices添加附件(之前是VisualStudioOnline)【英文标题】:AddingAttachmentusingAPIforVisualStudioTeamServices(wasVisualStudioOnline)【发布时间】:2016-06-1317:28:23【问题描述】:我正在创建一个简单的winform应用程序,它可以... 查看详情

从 Visual Studio 使用 Xamarin 创建 Mac 应用

...o中的Xamarin上创建Android和IOS应用似乎很容易,但我看不到如何创建OSX应用。在Windows/VS的Xamarin下载页面上,它声明“包括以下内容:Mac-使用Xamarin.Ma 查看详情

开始在 Visual Studio 2008 中使用 Crystal Reports 2008 for winform 创建报表?

...发布时间】:2010-07-3014:33:21【问题描述】:您能否告诉我如何将CR2008集成到VS2008团队系统中,因为目前VS不给我使用 查看详情

如何在 Visual Studio 2015 for C 中禁用警告? [复制]

】如何在VisualStudio2015forC中禁用警告?[复制]【英文标题】:HowtodisableawarninginVisualStudio2015forC?[duplicate]【发布时间】:2015-10-1019:02:49【问题描述】:我是C编程新手,不习惯在VisualStudio2015中工作,我的教授给我发了一份家庭作业的... 查看详情

如何在 Visual Studio For Mac 中执行 T4 模板文件?

】如何在VisualStudioForMac中执行T4模板文件?【英文标题】:HowtoexecuteT4templatefilesinVisualStudioForMac?【发布时间】:2021-09-2317:46:01【问题描述】:我无法在VisualStudioforMac或VisualStudio代码中运行文本模板。我试过了:VS>右键项目>工... 查看详情

.NET6 与 Visual Studio for Mac M1 不兼容,我可以为 xamarin 使用啥?

...布时间】:2021-12-3123:00:19【问题描述】:我正在尝试学习如何使用xamarin表单制作应用 查看详情

有啥理由不使用 Visual Studio 6 for C++? [关闭]

】有啥理由不使用VisualStudio6forC++?[关闭]【英文标题】:ArethereanyreasonsnottouseVisualStudio6forC++?[closed]有什么理由不使用VisualStudio6forC++?[关闭]【发布时间】:2009-03-0912:14:57【问题描述】:我有什么理由不应该使用VisualStudio6进行C++... 查看详情