Welcome, guest | Sign In | My Account | Store | Cart

Visual Studio can be configured to invoke a Python script during your build process. If you need to do this, you'll likely want to report errors and warnings in a way that Visual Studio will understand. Here's how.

Python, 24 lines
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# Put this code in your script.
#
# It uses the standard Python warnings framework,
# and installs a custom warning message formatter that
# generates messages Visual Studio will understand.

import warnings
from warnings import warn

def my_formatwarning(message, category, filename, lineno):
    """ Return a warning message, formatted for Visual Studio """
    return "%s(%i) : warning: %s" % (filename, lineno, message)

# Replace default warning formatter with custom formatter
warnings.formatwarning = my_formatwarning



# Now for some sample code that generates warnings.
# Your code can call warn() anywhere.
def foo():
    warn("You called foo(); don't do that")

foo()

When Visual Studio runs your script, it redirects the output to the Build window. Any line of output that looks like this: <pre>C:\dev\mydir\myfile.py(1025) : warning: something bad happened</pre> is treated as a warning. It increments the warning count; and if you hit F4, Visual Studio will load the file and move the cursor to the specified line. Python comes with a standard warnings module that does everything you need. All you have to do is change the formatting.