【发布时间】:2021-01-30 03:44:40
【问题描述】:
我正在制作一个移动应用程序。在我的解决方案中,我有一个共享项目。一些我不想在我的 iOS 或 Android 版本中使用的文件。
我的代码如下所示:
#if __MOBILE__
#else
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Queues;
using Azure.Storage.Queues.Models;
using System;
namespace Blah.Utils
{
public static class AzureBlobService
{
public static async Task<string> CreateCloudQueue(string connectionString, string queueName)
{
// blah
}
}
}
#endif
这似乎不会为我的移动应用程序删除此文件。它仍然希望我得到那些 nuget Azure.Storage 包。我怎样才能让#if 以我想要的方式工作?
【问题讨论】:
-
你是否在这些版本中将
__MOBILE__设置为 true? -
嗯,如何将其设置为 true?在搞砸之后......似乎 MOBILE 设置为 false? (换句话说,如果我将#else 放在#endif 正上方的行中,它就可以工作。)
-
是的。但是您不想每次为不同的目标构建代码时都更改代码,对吗?在 Visual Studio 上,您可以为您的项目设置不同的构建配置文件。默认为调试和发布。但是你可以添加更多。在这些配置文件中,您可以设置像这样的开关。
-
在我的 android 和 iOS 版本中,我永远不想使用上面显示的文件。我已经转到 Android 属性/构建/条件编译符号并将文本 MOBILE 放在调试和发布中。我假设一旦我这样做......它应该将 MOBILE 设置为真实值?但它根本没有设置为真实值。它似乎并没有做任何事情。
-
当我放置内置的 DEBUG 符号时,它按预期工作。
标签: c# android ios visual-studio shared-project