How to solve build of one's old project by a newer Visual Studio non-GUI ie. MSVC build;
C:\ext2fsd-code> msbuild Ext3Fsd.sln /p:Configuration=Release
MSBuild version 17.12.12+1cce77968 for .NET Framework
Build started 29-Dec-24 7:28:21 AM.
MSBUILD : error MSB4025: The project file could not be loaded. Root element is missing.
Build FAILED.
MSBUILD : error MSB4025: The project file could not be loaded. Root element is missing
in .sln
file,
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ext3Fsd", "Ext3Fsd\ext3fsd.vcproj", "{2328F787-71B4-408B-8E10-B7A95BF9A110}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ext2Mgr", "Ext2Mgr\Ext2Mgr.vcproj", "{F0E304B5-AF20-49F7-8183-5994C6EA889D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ext2Srv", "Ext2Srv\Ext2Srv.vcproj", "{A18F670C-DA85-43F6-8620-99A2DD8CEF1A}"
EndProject
Global
GlobalSection(SourceCodeControl) = preSolution
SccNumberOfProjects = 2
SccProjectUniqueName0 = Ext3Fsd\\ext3fsd.vcproj
SccProjectName0 = Ext3Fsd
SccLocalPath0 = Ext3Fsd
SccProvider0 = MSSCCI:Perforce\u0020P4\u0020SCM
CanCheckoutShared = true
SccProjectUniqueName1 = Ext2Srv\\Ext2Srv.vcproj
SccProjectName1 = Ext2Srv
SccLocalPath1 = Ext2Srv
SccProvider1 = MSSCCI:Perforce\u0020P4\u0020SCM
CanCheckoutShared = true
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2328F787-71B4-408B-8E10-B7A95BF9A110}.Debug|Win32.ActiveCfg =
Debug|Win32
{2328F787-71B4-408B-8E10-B7A95BF9A110}.Debug|Win32.Build.0 = Debug|Win32
{2328F787-71B4-408B-8E10-B7A95BF9A110}.Release|Win32.ActiveCfg = Release|Win32
{2328F787-71B4-408B-8E10-B7A95BF9A110}.Release|Win32.Build.0 = Release|Win32
{F0E304B5-AF20-49F7-8183-5994C6EA889D}.Debug|Win32.ActiveCfg = Debug|Win32
{F0E304B5-AF20-49F7-8183-5994C6EA889D}.Debug|Win32.Build.0 = Debug|Win32
{F0E304B5-AF20-49F7-8183-5994C6EA889D}.Release|Win32.ActiveCfg = Release|Win32
{F0E304B5-AF20-49F7-8183-5994C6EA889D}.Release|Win32.Build.0 = Release|Win32
{A18F670C-DA85-43F6-8620-99A2DD8CEF1A}.Debug|Win32.ActiveCfg = Debug|Win32
{A18F670C-DA85-43F6-8620-99A2DD8CEF1A}.Debug|Win32.Build.0 = Debug|Win32
{A18F670C-DA85-43F6-8620-99A2DD8CEF1A}.Release|Win32.ActiveCfg = Release|Win32
{A18F670C-DA85-43F6-8620-99A2DD8CEF1A}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
To get notion let's look into its first vcproject file which's changed to UTF-8
from gb2312
and after put off some lines to succinct:
C:\ext2fsd-code>type Ext3Fsd/ext3fsd.vcproj
<?xml version="1.0" encoding="UTF-8"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9.00"
Name="Ext3Fsd"
ProjectGUID="{2328F787-71B4-408B-8E10-B7A95BF9A110}"
SccProjectName="Ext3Fsd"
SccLocalPath="."
SccProvider="MSSCCI:Perforce P4 SCM"
Keyword="MakeFileProj"
TargetFrameworkVersion="0"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\chk"
IntermediateDirectory=".\chk"
ConfigurationType="0"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCNMakeTool"
BuildCommandLine=".\DDKBuild.bat -W7XP chk ."
ReBuildCommandLine=".\DDKBuild.bat -W7XP chk . -ceZ"
CleanCommandLine=""
Output="Ext2Fsd.sys"
PreprocessorDefinitions=""
IncludeSearchPath=""
ForcedIncludes=""
AssemblySearchPath=""
ForcedUsingAssemblies=""
CompileAsManaged=""
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory=".\fre"
IntermediateDirectory=".\fre"
ConfigurationType="0"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCNMakeTool"
BuildCommandLine=".\DDKBuild.bat -W7XP fre ."
ReBuildCommandLine=".\DDKBuild.bat -W7XP fre . -cZ"
CleanCommandLine=""
Output="Ext3Fsd.sys"
PreprocessorDefinitions=""
IncludeSearchPath=""
ForcedIncludes=""
AssemblySearchPath=""
ForcedUsingAssemblies=""
CompileAsManaged=""
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="access.c"
>
<Filter
Name="nls"
>
</Filter>
<Filter
Name="ext4" >
</Filter>
<Filter
Name="jbd"
>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<Filter
Name="Linux"
>
<File
RelativePath="include\linux\atomic.h">
<File
RelativePath="include\linux\bitops.h"
</File>
</Filter>
<Filter
Name="asm"
>
</Filter>
</Filter>
<Filter
Name="Resource Files"
</Filter>
<Filter
Name="Douments"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
Please help guide/point out why such error occurs, very gratified in advance
This CLI way can't do that (at least yet, AFAIK) .
So to get the 'real' Microsoft Visual Studio IDE Version Community 2022, whose executable binary file name devenv
launched, its wizard worked like a charm.
It'll immediately upgrade/update, migrate the old Visual Studio version project to the newest version.
One could compare the files .vcxproj
and .vcproj
remaining.