我正在使用Visual Studio 2010.我有两个不同的MASM程序集文件,一个用于32位构建,一个用于64位。我.vcxproj
的相关部分如下所示:
<ItemGroup>
<MASM Include="asmcode32.asm" Condition="'$(Platform)'=='Win32'" />
<MASM Include="asmcode64.asm" Condition="'$(Platform)'=='x64'" />
</ItemGroup>
我的问题是:解决方案资源管理器中显示的唯一文件是用于打开Visual Studio时选择的任何配置(<{1}} / Win32
的文件。即使卸载和重新加载项目也是不够的 - 我必须关闭并重新打开visual studio以显示另一个文件。
我希望无论选择哪种配置,都会一直显示这两个文件。根据选择的解决方案,我可以接受可见项目的更改。
示例:
在选中x64
配置的情况下打开Visual Studio。仅显示x64
:
当我更改为asmcode64.asm
配置时(通过“解决方案平台”下拉菜单),Win32
仍然不可见。同样,即使卸载+重新加载也不会使其可见。
仍然选择了asmcode32.asm
,我可以关闭Visual Studio并重新打开它。只有现在 Win32
可见:
我可以使用asmcode32.asm
文件显示这两个文件吗?
将.vcxproj
添加到Condition=
项目可能不是正确的解决方案。如果确实如此,我如何配置项目按照我的意图进行编译?
这仅适用于MASM .asm文件。 C / C ++文件的等效操作是文件属性中的use the "Excluded From Build" option(MASM文件不存在此选项):
答案 0 :(得分:0)
你是 1 做错了。
Conditional=
解决方案有效,但使用它会导致您 1 看到的行为。 Visual Studio似乎只评估哪些文件将在解决方案资源管理器中显示一次。基本上这使得Visual Studio认为该文件甚至不是项目的一部分。
真正的解决方案是使用C文件使用的相同<ExcludedFromBuild>
标记(当您在文件的属性页中选择“从构建中排除”选项时添加这些标记。< / p>
<ItemGroup>
<!-- This causes the items to not be shown in Solution Explorer -->
<!--
<MASM Include="asmcode32.asm" Condition="'$(Platform)'=='Win32'" />
<MASM Include="asmcode64.asm" Condition="'$(Platform)'=='x64'" />
-->
<!-- This is the right solution. -->
<MASM Include="asmcode32.asm">
<ExcludedFromBuild Condition="'$(Platform)'=='x64'">true</ExcludedFromBuild>
</MASM>
<MASM Include="asmcode64.asm">
<ExcludedFromBuild Condition="'$(Platform)'=='Win32'">true</ExcludedFromBuild>
</MASM>
</ItemGroup>
遗憾的是,此选项不会通过GUI公开,就像C文件一样。
1 - “我是”