我有一个(python)脚本,可以完成以下任务:
.csproj
和.vcproj
个文件的文件夹。.csproj
和.vcproj
文件编写文本,创建包含所有项目的解决方案文件。devenv.exe /Build
(在python上subprocess.call
)。我的问题是:当我构建时,VS会更改我的SLN中的配置。具体来说,在SLN的Win32
配置中,所有.csproj
项目(.NET项目)都从x86
切换到x64
,并从构建中标记出来。
尝试不起作用:
更改SLN以使x86
处的所有.NET和Win32
解决方案配置下的x86
上的VC。同样,VS在打开SLN时会破坏它:VC会自动更改为目标x64
并标记出构建。
尝试有效但非常笨拙:
首先,我让VS打破文件。我设法做到的唯一笨拙的方法是从命令行调用/Build
然后调用/Clean
。接下来,我通过替换VS破坏的配置来修复SLN文件。现在当我/Build
时,VS不会改变SLN。
所以:
/Build
- /Clean
之外,有什么更好的方法让VS打破文件吗?答案 0 :(得分:0)
简单的答案是,缩进对VS sln
解析器很重要。
公司的人们声称这一切都在当天奏效,我发现很难相信。我一遍又一遍地扫描构建它的代码和生成的sln文件,并且无法区分。
因为我没看空白!
月前我天真地改变了构建.sln文件的代码,用不同的缩进来编写文件。
以下是文件的区别:
这很有效,因为该文件与VS制作的文件完全相同,包括indenetation:
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{19091980-2008-4CFA-1491-04CC20D8BCF9}") = "proj1", "..\proj1_2008.vcproj", "{C844505D-3D9E-437F-94D6-BDA74999651D}"
...
EndProject
Project ...
..
EndProject
Global
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
*good Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
....
这一个导致VS重新编辑,并作为一个方面的效果来打破我们所需的解决方案配置:
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{19091980-2008-4CFA-1491-04CC20D8BCF9}") = "proj1", "..\proj1_2008.vcproj", "{C844505D-3D9E-437F-94D6-BDA74999651D}"
...
EndProject
Project ...
..
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
*bad Debug|Win32 = Debug|Win32
*indent-Debug|x64 = Debug|x64
*ation Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
....