Max*_*ung 8 visual-studio-2017
我们有一个解决方案,我们只想拥有该x86平台,但每次我们向解决方案添加新项目时,它AnyCPU都会为解决方案中的每个项目添加回来。删除AnyCPU解决方案文件中的所有行很乏味,因为我们在解决方案中有 70 多个项目。他们有什么方法可以配置 Visual Studio 以防止添加它?
不确定这是否相关,但我们使用的是旧项目系统,并且仅在我们的解决方案中使用 csproj。
编辑 1:
我不想AnyCPU被添加回解决方案的原因是因为使用某些 nuget 包构建时出现警告和问题。
x86它构建的,当我们引用它们时它会产生没有代码的警告,所以我无法抑制它们。AnyCPU。它使用平台来确定它是否应该复制其非托管x86或x64dll。编辑2:
这是在我们进行构建时导致问题的解决方案部分。根据我所阅读的内容,如果未提供平台,Visual Studio 按字母顺序查看此列表。这个例子来自一个不相关的解决方案。
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
QA|Any CPU = QA|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
Run Code Online (Sandbox Code Playgroud)
编辑 3:
据我所知,汉斯的回答是处理这个问题的正确方法。我一直在寻找其他方法来处理这个问题,但在查看 uservoice 之后,我找到了 2011年建议的地方。
这是一个非常常见的错误。VS2010在很大程度上对此负责,它的项目模板选择了x86而不是AnyCPU。在 VS2012 中再次修复,但没有修复曾经暴露于 VS2010 的解决方案造成的任何损坏。或者帮助程序员把事情做好。
平台选择对于C#项目来说没有意义。您对任何平台使用完全相同的构建工具,生成的代码真正与“任何 cpu”兼容。它是锁定目标处理器的即时编译器,它在运行时执行此操作。影响抖动效果的唯一设置位于“项目”>“属性”>“构建”选项卡中。只有 EXE 项目的设置很重要,库别无选择,只能与进程的位数兼容。
这对于 C++ 项目确实很重要。很多时候,他们为每个平台使用完全不同的编译器和链接器。因此,C++ 项目必须预先生成机器代码,并且该代码必须与用户的机器兼容。这也是 VS2010 中出现问题的原因,因为 C++ 构建系统迁移到了 MSBuild。
AnyCPU 重新出现在解决方案中的典型原因是添加一个新项目。由于它们再次默认为 AnyCPU,因此需要将其添加回解决方案平台。
到目前为止,最好的解决方案是停止与机器对抗。AnyCPU 应该是您的首选。使用“构建”>“配置管理器”>“活动解决方案”组合框>“编辑”。删除 x86,仅保留 AnyCPU。并专注于您想要完成的任务,重要的是 EXE 项目设置。请注意另一个陷阱,即使默认平台是 AnyCPU,项目模板也会默认打开“首选 32 位”复选框。已经没有CPU了。顺便说一句,微软已经修复了这个问题,64 位调试器和抖动已经稳定且功能足够长,不再需要它了。
| 归档时间: |
|
| 查看次数: |
750 次 |
| 最近记录: |