2013-03-29 39 views
2

我想上一个Visual Studio扩展,需要补充的是被保存到当前的csproj文件,像这样的属性工作:添加属性来ENVDTE.Project

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <MyProperty Condition="$(MyProperty) == '' Or $(MyProperty) == '*Undefined*'">MyPropertyValue</MyProperty> 

我有一个ENVDTE。项目实例,但似乎无法在API中的任何位置找到将新属性添加到项目中的地方。

我能够通过将其转换为MSBuild项目并以该方式添加属性来解决该问题,但该方法会导致用户得到提示,说明csproj文件已在IDE之外进行了修改并询问他们重新加载,这是我不想要的。

如何添加ENVDTE.Project实例的属性,或者阻止'Modified outside the environment'提示以其他方式显示?

回答

1

使用MSBuild项目解决方法解决了我的问题。

导致用户提示项目文件已更改的问题是我在MSBuild项目对象上调用了.Save(),而不是我的ENVDTE项目对象。

+1

您能否详细说明您的解决方案?我试图看看我是否可以使用你的解决方案,让我的方式为此:http://stackoverflow.com/questions/20267268/add-code-analisys-ruleset-through-nuget-package –