gpt4 book ai didi

visual-studio-2017 - 防止添加新的 csproj 将 AnyCPU 添加回解决方案文件

转载 作者:行者123 更新时间:2023-12-03 14:33:49 33 4
gpt4 key购买 nike

我们有一个解决方案,我们只想拥有 x86平台,但每次我们向解决方案添加新项目时,它都会添加 AnyCPU返回解决方案中的每个项目。删除所有 AnyCPU 很繁琐解决方案文件中的行,因为我们在解决方案中有 70 多个项目。他们有什么方法可以配置 Visual Studio 以防止添加它吗?

不确定这是否相关,但我们使用的是遗留项目系统,并且仅在我们的解决方案中使用 csproj。

编辑 1:

我想保留的原因AnyCPU被添加回解决方案是因为使用某些 nuget 包构建的警告和问题。

  • 我们的一些第三方依赖项是针对 x86 构建的。当我们引用它们时它会产生没有代码的警告,所以我无法抑制它们。
  • 我特别知道会导致问题的 nuget 包是 CefSharp。如果开发人员选择 AnyCPU,它将无法构建引用它的桌面应用程序。 .它使用平台来确定是否应该复制其非托管 x86x64 dll。

  • 编辑 2:

    这是我们在构建时导致问题的解决方案部分。据我所知 read如果未提供平台,Visual Studio 按字母顺序在此列表中查找平台。这个例子来自一个不相关的解决方案。
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
    Debug|Any CPU = Debug|Any CPU
    QA|Any CPU = QA|Any CPU
    Release|Any CPU = Release|Any CPU
    EndGlobalSection

    编辑 3:

    据我所知,汉斯的回答是处理这个问题的正确方法。我一直在寻找其他方法来处理这个问题,但是在查看 uservoice 之后能够找到它在哪里 suggested在2011年。

    最佳答案

    这是一个非常常见的错误。 VS2010对它负责很大一部分,它的项目模板选择了x86而不是AnyCPU。在 VS2012 中再次修复,但未修复曾经暴露于 VS2010 的解决方案造成的任何损坏。或者帮助程序员做对。

    平台选择对于 C# 项目没有意义。您为任何平台使用完全相同的构建工具,生成的代码真正与“任何 cpu”兼容。它是锁定目标处理器的即时编译器,它在运行时这样做。 Project > Properties > Build 选项卡中存在的唯一影响抖动的设置。只有 EXE 项目的设置很重要,库别无选择,只能与进程的位数兼容。

    这对 C++ 项目很重要。很多,他们为每个平台使用完全不同的编译器和链接器。必然地,C++ 项目会预先生成机器代码,并且该代码必须与用户的机器兼容。这也是在 VS2010 中失败的原因,那是 C++ 构建系统转移到 MSBuild 的时候。

    AnyCPU 重新出现在解决方案中的典型原因是添加了一个新项目。由于它们再次默认为 AnyCPU,因此需要将其添加回解决方案平台。

    到目前为止,最好的解决方案是停止与机器作战。 AnyCPU 应该是您的首选。使用构建 > 配置管理器 > 事件解决方案组合框 > 编辑。移除 x86,只剩下 AnyCPU。并专注于你想要完成的事情,重要的是 EXE 项目设置。请注意另一个陷阱,即使默认平台是 AnyCPU,项目模板也会默认打开“首选 32 位”复选框。没有cpu了。是时候微软修复这个问题了,64 位调试器和抖动已经稳定并且足够长的时间不再需要它。

    关于visual-studio-2017 - 防止添加新的 csproj 将 AnyCPU 添加回解决方案文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51266938/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com