Search code examples
python-2.7visual-studio-2010msbuilddevenv

What are the differences between Visual Studio command line (devenv) and IDE builds?


I'm trying to build a Python 2.7 core dll, including a few standard modules for VS2010 with his standard toolset (v100) from Python sources:

https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz

After providing local versions for the external libs (originally, these are requested utilizing a svn call during the build) and tweaking a property file into utilizing the correct v100 toolset, the IDE can build the correct python dll, and also pyd's and dll's for the mentioned external projects there (sqlite, openssl, etc.) for my use case (x64 debug & release versions), using the provided pcbuild.sln.

But this won't work for command line builds with devenv.com/.exe. I know, that msbuild can produce differences, but I've never heard that about devenv calls like mine (always from the same clean source tree, calling the correct vcvarsall.bat amd64 in advance):

devenv pcbuild.sln /Build "Relase|x64"

python27.dll will be created, but almost all of the additional external libs are not there, partially not there (no pyd's) or are packaged in a completely different way (sqlite's exports for example are found inside a file python.dll, which is not created when building from the IDE).

Does someone know about documentation explaining these differences in general? At this moment, I don't even know where to start, in order to analyze the problem (besides producing a log file with /out for the devenv call).


Solution

  • After changing the devenv call in something interactive, the opened solution file came up with all projects renamed to 'python'.

    The culprit was the calling batch file, defining an environment variable PROJECTNAME as 'python'. Obviously, this produces a clash with the VS macro $(ProjectName).