首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为visual项目添加和编译自定义的“平台”开关?

如何为visual项目添加和编译自定义的“平台”开关?
EN

Stack Overflow用户
提问于 2008-11-05 17:51:10
回答 5查看 8.7K关注 0票数 2

我们希望提供两个自定义平台开关(配置管理器中的平台下拉),用于Visual 中的项目

例如,一个用于“桌面”,另一个用于“Web”。然后,目标构建任务以基于平台开关的自定义方式编译代码。我们不想添加到Debug发布开关中,因为我们需要为每个桌面和Web平台添加这些。

我们找到了一种尝试这样做的方法,就是修改.csproj文件以添加如下内容

代码语言:javascript
复制
<Platform Condition=" '$(Platform)' == '' ">Desktop</Platform>

添加属性组,例如,

代码语言:javascript
复制
    <PropertyGroup Condition=" '$(Platform)' == 'Web' ">
        <DefineConstants>/define Web</DefineConstants>
        <PlatformTarget>Web</PlatformTarget>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Platform)' == 'Desktop' ">
        <DefineConstants>/define Desktop</DefineConstants>
        <PlatformTarget>Desktop</PlatformTarget>
      </PropertyGroup>

但是这仍然不起作用,编译器会抛出一个错误

/platform的无效选项“桌面”;必须为anycpu、x86、Itanium或x64

那么,它必须是其中之一,我们不能添加我们的定制平台吗?

有人能做到吗?任何指示都会有帮助。

更新:使用DebugDesktop和ReleaseDesktop将使用户的操作更加复杂。因为‘桌面’和'web‘实际上是平台,而且也有能力在下拉列表(即)中添加新的平台,所以我认为'platform’开关应该用于完全相同的目的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2008-11-05 18:38:47

您应该能够使用Configuration对话框来创建新的平台。

票数 1
EN

Stack Overflow用户

发布于 2011-06-24 04:13:30

也许三年后这个话题对某些人来说会很有趣。我在配置构建平台方面也遇到了类似的困难,并解决了这些问题。

引发错误是因为PlatformTarget属性是用Desctop设置的,而不是因为Platform属性。这两个属性的含义有点不同。第一种方法最终真正指导构建过程的所有参与者应该使用哪种流程体系结构,而第二种方法允许在IDE中定制构建环境。

在Visual中创建项目时,ProcessTarget属性可以默认使用AnyCPU在PropertyGroups下设置,这些条件限制如下:“‘...|$(平台)’== '...|AnyCPU'”。但它并没有强迫你这么做。对于具有其他值的Platform属性,ProcessTarget属性可以很容易地使用AnyCPU进行设置。

考虑到上面描述的情况,您的示例可能如下所示:

代码语言:javascript
复制
<PropertyGroup Condition=" '$(Platform)' == 'Web' ">
    <DefineConstants>Web</DefineConstants>
    <PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'Desktop' ">
    <DefineConstants>Desktop</DefineConstants>
    <PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>

一定是起作用了。

希望它对你有用。

票数 7
EN

Stack Overflow用户

发布于 2010-06-08 18:11:28

我最近也问了同样的问题,看来使用Visual 2010,您可以定义自己的项目平台。(见链接)。不幸的是,我们仍在使用2008年。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/266028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档