diff --git a/src/actions/vstudio/vs2010_vcxproj.lua b/src/actions/vstudio/vs2010_vcxproj.lua
index ab0d6e7b..f4465216 100644
--- a/src/actions/vstudio/vs2010_vcxproj.lua
+++ b/src/actions/vstudio/vs2010_vcxproj.lua
@@ -822,9 +822,20 @@
--
m.elements.projectReferences = function(prj, ref)
- return {
- m.projectReferenceProject,
- }
+ if prj.flags.Managed then
+ return {
+ m.referenceProject,
+ m.referencePrivate,
+ m.referenceOutputAssembly,
+ m.referenceCopyLocalSatelliteAssemblies,
+ m.referenceLinkLibraryDependencies,
+ m.referenceUseLibraryDependences,
+ }
+ else
+ return {
+ m.referenceProject,
+ }
+ end
end
function m.projectReferences(prj)
@@ -1391,11 +1402,6 @@
end
- function m.projectReferenceProject(prj, ref)
- p.w('{%s}', ref.uuid)
- end
-
-
function m.propertyGroup(cfg, label)
local cond
if cfg then
@@ -1418,7 +1424,6 @@
end
-
function m.propertySheetGroup(prj)
for cfg in project.eachconfig(prj) do
m.propertySheets(cfg)
@@ -1426,6 +1431,35 @@
end
+ function m.referenceCopyLocalSatelliteAssemblies(prj, ref)
+ p.w('false')
+ end
+
+
+ function m.referenceLinkLibraryDependencies(prj, ref)
+ p.w('true')
+ end
+
+
+ function m.referenceOutputAssembly(prj, ref)
+ p.w('true')
+ end
+
+
+ function m.referencePrivate(prj, ref)
+ p.w('true')
+ end
+
+
+ function m.referenceProject(prj, ref)
+ p.w('{%s}', ref.uuid)
+ end
+
+
+ function m.referenceUseLibraryDependences(prj, ref)
+ p.w('false')
+ end
+
function m.resourceAdditionalIncludeDirectories(cfg)
m.additionalIncludeDirectories(cfg, table.join(cfg.includedirs, cfg.resincludedirs))
diff --git a/tests/actions/vstudio/vc2010/test_project_refs.lua b/tests/actions/vstudio/vc2010/test_project_refs.lua
index 93e9ba8b..39e195e7 100644
--- a/tests/actions/vstudio/vc2010/test_project_refs.lua
+++ b/tests/actions/vstudio/vc2010/test_project_refs.lua
@@ -75,3 +75,25 @@
]]
end
+
+--
+-- Managed C++ projects write out references a little differently.
+--
+
+ function suite.referencesAreRelative_onDifferentProjectLocation()
+ links { "MyProject" }
+ flags { "Managed" }
+ prepare()
+ test.capture [[
+
+
+ {00112233-4455-6677-8888-99AABBCCDDEE}
+ true
+ true
+ false
+ true
+ false
+
+
+ ]]
+ end