{"id":1842,"date":"2014-06-04T15:47:01","date_gmt":"2014-06-04T13:47:01","guid":{"rendered":"http:\/\/mariusbancila.ro\/blog\/?p=1842"},"modified":"2014-06-23T12:30:31","modified_gmt":"2014-06-23T10:30:31","slug":"per-project-natvis-files-in-visual-studio-14","status":"publish","type":"post","link":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/","title":{"rendered":"Per-project natvis files in Visual Studio &#8220;14&#8221;"},"content":{"rendered":"<p>Visual Studio 2012 introduced a new framework for writing debugger visualizers for C++ types that replaced the old autoexp.dat file. The new framework offers xml syntax, better diagnostics, versioning and multiple file support.<\/p>\n<p>Visualizers are defined in XML files with extension <tt>.natvis<\/tt>. These visualizers are loaded each time the debugger starts. That means if you make a change to visualizers, it is not necessary to re-start Visual Studio, just re-start the debugger (for instance detach and re-attach the debugger to the process you debug). <\/p>\n<p>These files can be located under one of these locations:<\/p>\n<ul>\n<li><strong>%VSINSTALLDIR%\\Common7\\Packages\\Debugger\\Visualizers<\/strong> (requires admin access)<\/li>\n<li><strong>%USERPROFILE%\\My Documents\\Visual Studio 2012\\Visualizers\\<\/strong><\/li>\n<li>VS extension folders<\/li>\n<\/ul>\n<p>In Visual Studio &#8220;14&#8221; CTP (in response to a UserVoice <a href=\"http:\/\/visualstudio.uservoice.com\/forums\/121579-visual-studio\/suggestions\/4353231-allow-per-solution-or-per-project-natvis-files\">request<\/a>) these files can also be added to a Visual C++ project for easier management and source control integration. All you have to do is add the <tt>.natvis<\/tt> file to your <tt>.vcxproj<\/tt> file.<\/p>\n<p>Here is an example. Suppose we have the following code:<\/p>\n<pre class=\"lang:c++ decode:true \" >\r\nstruct point\r\n{\r\n   double x;\r\n   double y;\r\n   double z;\r\n};\r\n\r\nint main()\r\n{\r\n   point p { 1.0, 2.0, 3.0 };\r\n\r\n\treturn 0;\r\n}<\/pre>\n<p>If you run this in debugger you can inspect the value of <tt>p<\/tt> and it looks like this:<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis1.png\" alt=\"natvis1\" width=\"653\" height=\"472\" class=\"alignnone size-full wp-image-1843\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis1.png 653w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis1-300x216.png 300w\" sizes=\"auto, (max-width: 653px) 100vw, 653px\" \/><\/a><\/p>\n<p>To change the way the <tt>point<\/tt> objects are visualized create a file called <i>point.natvis<\/i> with the following content:<\/p>\n<pre class=\"lang:xhtml\" >\r\n&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;AutoVisualizer xmlns=\"http:\/\/schemas.microsoft.com\/vstudio\/debugger\/natvis\/2010\"&gt;\r\n   \r\n  &lt;Type Name=\"point\"&gt;\r\n    &lt;DisplayString&gt;{{point X={x}, Y={y}, Z={z}}}&lt;\/DisplayString&gt;\r\n    &lt;Expand&gt;\r\n      &lt;Item Name=\"axis-X\"&gt;x&lt;\/Item&gt;\r\n      &lt;Item Name=\"axis-Y\"&gt;y&lt;\/Item&gt;\r\n      &lt;Item Name=\"axis-Z\"&gt;z&lt;\/Item&gt;\r\n    &lt;\/Expand&gt;     \r\n  &lt;\/Type&gt;\r\n   \r\n&lt;\/AutoVisualizer&gt;\r\n<\/pre>\n<p>Add this file to the project.<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis3.png\" alt=\"natvis3\" width=\"342\" height=\"225\" class=\"alignnone size-full wp-image-1844\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis3.png 342w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis3-300x197.png 300w\" sizes=\"auto, (max-width: 342px) 100vw, 342px\" \/><\/a><br \/>\nWhen you run the application in debugger again the <tt>point<\/tt> object is visualized according to the per-project <tt>.natvis<\/tt> file.<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis2.png\" alt=\"natvis2\" width=\"653\" height=\"487\" class=\"alignnone size-full wp-image-1845\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis2.png 653w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis2-300x223.png 300w\" sizes=\"auto, (max-width: 653px) 100vw, 653px\" \/><\/a><\/p>\n<p><strong>UPDATE<\/strong><br \/>\nThere are two things to note:<\/p>\n<ul>\n<li>changes in the natvis files are now picked up automatically by the debugger; you no longer need to stop the debugging session and then start again if you make changes to a natvis file<\/li>\n<li>natvis files from the project are evaluated after all the other files from the other possible locations; that means you can override existing (general) visualizers with project-specific visualizers<\/li>\n<\/ul>\n<p>For more see <a href=\"http:\/\/blogs.msdn.com\/b\/vcblog\/archive\/2014\/06\/12\/project-support-for-natvis.aspx\">Project Support for Natvis<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visual Studio 2012 introduced a new framework for writing debugger visualizers for C++ types that replaced the old autoexp.dat file. The new framework offers xml syntax, better diagnostics, versioning and multiple file support. Visualizers are defined in XML files with extension .natvis. These visualizers are loaded each time the debugger starts. That means if you &#8230; <a title=\"Per-project natvis files in Visual Studio &#8220;14&#8221;\" class=\"read-more\" href=\"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/\" aria-label=\"Read more about Per-project natvis files in Visual Studio &#8220;14&#8221;\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[7,52,10],"tags":[35,299,414,458,55,413],"class_list":["post-1842","post","type-post","status-publish","format-standard","hentry","category-c","category-tools","category-visual-studio","tag-debugger","tag-native","tag-natvis","tag-tools","tag-visualstudio","tag-vs14"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Visual Studio 14 CTP allows per-project natvis files for easier management and source control integration.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Marius Bancila\"\/>\n\t<meta name=\"keywords\" content=\"vs14,visualstudio,natvis,debugger,native,tools\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Marius Bancila&#039;s Blog | About code. Mostly on C++\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Per-project natvis files in Visual Studio &quot;14&quot;\" \/>\n\t\t<meta property=\"og:description\" content=\"Visual Studio 14 CTP allows per-project natvis files for easier management and source control integration.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2014-06-04T13:47:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2014-06-23T10:30:31+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Per-project natvis files in Visual Studio &quot;14&quot;\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Visual Studio 14 CTP allows per-project natvis files for easier management and source control integration.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2014\\\/06\\\/04\\\/per-project-natvis-files-in-visual-studio-14\\\/#article\",\"name\":\"Per-project natvis files in Visual Studio \\\"14\\\"\",\"headline\":\"Per-project natvis files in Visual Studio &#8220;14&#8221;\",\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/06\\\/natvis1.png\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2014\\\/06\\\/04\\\/per-project-natvis-files-in-visual-studio-14\\\/#articleImage\",\"width\":653,\"height\":472},\"datePublished\":\"2014-06-04T15:47:01+02:00\",\"dateModified\":\"2014-06-23T12:30:31+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":1,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2014\\\/06\\\/04\\\/per-project-natvis-files-in-visual-studio-14\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2014\\\/06\\\/04\\\/per-project-natvis-files-in-visual-studio-14\\\/#webpage\"},\"articleSection\":\"C++, Tools, Visual Studio, debugger, native, natvis, Tools, VisualStudio, VS14\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2014\\\/06\\\/04\\\/per-project-natvis-files-in-visual-studio-14\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"name\":\"IT\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"position\":2,\"name\":\"IT\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"name\":\"Software\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"position\":3,\"name\":\"Software\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"name\":\"C++\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"name\":\"IT\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"position\":4,\"name\":\"C++\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2014\\\/06\\\/04\\\/per-project-natvis-files-in-visual-studio-14\\\/#listItem\",\"name\":\"Per-project natvis files in Visual Studio &#8220;14&#8221;\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"name\":\"Software\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2014\\\/06\\\/04\\\/per-project-natvis-files-in-visual-studio-14\\\/#listItem\",\"position\":5,\"name\":\"Per-project natvis files in Visual Studio &#8220;14&#8221;\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"name\":\"C++\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/\",\"name\":\"Marius Bancila\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2014\\\/06\\\/04\\\/per-project-natvis-files-in-visual-studio-14\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Marius Bancila\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2014\\\/06\\\/04\\\/per-project-natvis-files-in-visual-studio-14\\\/#webpage\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2014\\\/06\\\/04\\\/per-project-natvis-files-in-visual-studio-14\\\/\",\"name\":\"Per-project natvis files in Visual Studio \\\"14\\\"\",\"description\":\"Visual Studio 14 CTP allows per-project natvis files for easier management and source control integration.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2014\\\/06\\\/04\\\/per-project-natvis-files-in-visual-studio-14\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2014-06-04T15:47:01+02:00\",\"dateModified\":\"2014-06-23T12:30:31+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Per-project natvis files in Visual Studio \"14\"","description":"Visual Studio 14 CTP allows per-project natvis files for easier management and source control integration.","canonical_url":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/","robots":"max-image-preview:large","keywords":"vs14,visualstudio,natvis,debugger,native,tools","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/#article","name":"Per-project natvis files in Visual Studio \"14\"","headline":"Per-project natvis files in Visual Studio &#8220;14&#8221;","author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2014\/06\/natvis1.png","@id":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/#articleImage","width":653,"height":472},"datePublished":"2014-06-04T15:47:01+02:00","dateModified":"2014-06-23T12:30:31+02:00","inLanguage":"en-US","commentCount":1,"mainEntityOfPage":{"@id":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/#webpage"},"isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/#webpage"},"articleSection":"C++, Tools, Visual Studio, debugger, native, natvis, Tools, VisualStudio, VS14"},{"@type":"BreadcrumbList","@id":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog#listItem","position":1,"name":"Home","item":"https:\/\/mariusbancila.ro\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","name":"IT"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","position":2,"name":"IT","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","name":"Software"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","position":3,"name":"Software","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","name":"C++"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","name":"IT"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","position":4,"name":"C++","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/#listItem","name":"Per-project natvis files in Visual Studio &#8220;14&#8221;"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","name":"Software"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/#listItem","position":5,"name":"Per-project natvis files in Visual Studio &#8220;14&#8221;","previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","name":"C++"}}]},{"@type":"Organization","@id":"https:\/\/mariusbancila.ro\/blog\/#organization","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","url":"https:\/\/mariusbancila.ro\/blog\/"},{"@type":"Person","@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author","url":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/","name":"Marius Bancila","image":{"@type":"ImageObject","@id":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g","width":96,"height":96,"caption":"Marius Bancila"}},{"@type":"WebPage","@id":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/#webpage","url":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/","name":"Per-project natvis files in Visual Studio \"14\"","description":"Visual Studio 14 CTP allows per-project natvis files for easier management and source control integration.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/#breadcrumblist"},"author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"creator":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"datePublished":"2014-06-04T15:47:01+02:00","dateModified":"2014-06-23T12:30:31+02:00"},{"@type":"WebSite","@id":"https:\/\/mariusbancila.ro\/blog\/#website","url":"https:\/\/mariusbancila.ro\/blog\/","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","inLanguage":"en-US","publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Marius Bancila's Blog | About code. Mostly on C++","og:type":"article","og:title":"Per-project natvis files in Visual Studio &quot;14&quot;","og:description":"Visual Studio 14 CTP allows per-project natvis files for easier management and source control integration.","og:url":"https:\/\/mariusbancila.ro\/blog\/2014\/06\/04\/per-project-natvis-files-in-visual-studio-14\/","article:published_time":"2014-06-04T13:47:01+00:00","article:modified_time":"2014-06-23T10:30:31+00:00","twitter:card":"summary","twitter:title":"Per-project natvis files in Visual Studio &quot;14&quot;","twitter:description":"Visual Studio 14 CTP allows per-project natvis files for easier management and source control integration."},"aioseo_meta_data":{"post_id":"1842","title":"Per-project natvis files in Visual Studio &quot;14&quot;","description":"Visual Studio 14 CTP allows per-project natvis files for easier management and source control integration.","keywords":[{"label":"VS14","value":"VS14"},{"label":"VisualStudio","value":"VisualStudio"},{"label":"natvis","value":"natvis"},{"label":"debugger","value":"debugger"},{"label":"native","value":"native"},{"label":"tools","value":"tools"}],"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-03-18 21:11:01","updated":"2025-12-12 07:41:25","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"author_meta":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"featured_img":null,"jetpack_publicize_connections":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"uagb_comment_info":1,"uagb_excerpt":"Visual Studio 2012 introduced a new framework for writing debugger visualizers for C++ types that replaced the old autoexp.dat file. The new framework offers xml syntax, better diagnostics, versioning and multiple file support. Visualizers are defined in XML files with extension .natvis. These visualizers are loaded each time the debugger starts. That means if you&hellip;","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/\" class=\"advgb-post-tax-term\">C++<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/tools\/\" class=\"advgb-post-tax-term\">Tools<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">Visual Studio<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">C++<\/span>","<span class=\"advgb-post-tax-term\">Tools<\/span>","<span class=\"advgb-post-tax-term\">Visual Studio<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">debugger<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">native<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">natvis<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">Tools<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">VisualStudio<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">VS14<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">debugger<\/span>","<span class=\"advgb-post-tax-term\">native<\/span>","<span class=\"advgb-post-tax-term\">natvis<\/span>","<span class=\"advgb-post-tax-term\">Tools<\/span>","<span class=\"advgb-post-tax-term\">VisualStudio<\/span>","<span class=\"advgb-post-tax-term\">VS14<\/span>"]}},"comment_count":"1","relative_dates":{"created":"Posted 12 years ago","modified":"Updated 12 years ago"},"absolute_dates":{"created":"Posted on June 4, 2014","modified":"Updated on June 23, 2014"},"absolute_dates_time":{"created":"Posted on June 4, 2014 3:47 pm","modified":"Updated on June 23, 2014 12:30 pm"},"featured_img_caption":"","series_order":"","jetpack_shortlink":"https:\/\/wp.me\/pYNdv-tI","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/1842","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/comments?post=1842"}],"version-history":[{"count":3,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/1842\/revisions"}],"predecessor-version":[{"id":1859,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/1842\/revisions\/1859"}],"wp:attachment":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/media?parent=1842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/categories?post=1842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/tags?post=1842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}