ariel
ariel

Reputation: 41

Cannot convert vcproj in VS2005 to vcxproj in 2010

I try to convert vcprojs from 2005 to 2010 and I get the following error:

Converting project file 'C:\temp\Win32GlobAgent\Win32GlobAgent.vcproj'. Unable to read the project file "Win32GlobAgent.vcxproj". C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(36,5): The expression "[System.IO.Path]::Combine(C:\temp\Win32GlobAgent\, "C:\temp\Win32GlobAgent\"/bin\Win32GlobAgent.dll)" cannot be evaluated. Illegal characters in path.

I need help on this.

I tried also to first convert to 2008 and then to 2010 but did not help.

Thanks

Upvotes: 1

Views: 1998

Answers (2)

mp31415
mp31415

Reputation: 6689

There are no illegal symbols per se in the new vcxproj file. However quotes in text elements are handled differently in VS2013/VS2012. They were fine in the past but now cause the error reported. To fix the problem just edit manually vcxproj file as Hans Passant suggested. For example, change this

<Midl Include="doc.idl">
  <TypeLibraryName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"..\Lib\lib.tlb"</TypeLibraryName>
  ...
</Midl>

to this (notice quotes around ..\Lib\lib.tlb are removed:

<Midl Include="doc.idl">
  <TypeLibraryName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\Lib\lib.tlb</TypeLibraryName>
  ...
</Midl>

Repeat this step for all the other elements inside Midl element.

Upvotes: 1

Hans Passant
Hans Passant

Reputation: 941635

"C:\temp\Win32GlobAgent\"/bin\Win32GlobAgent.dll

Pretty clear from the error message, it is tripping on the double quote that's inside the string instead of the end. Which was probably caused by the forward slash on /bin.

Search the .vcproj files for /bin and use a text editor to correct to \bin or bin. Notepad will do fine.

Upvotes: 2

Related Questions