我正在尝试使用Visual Studio扩展,需要添加一个持久保存到当前csproj文件的属性,如下所示:
<?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.Project实例,但似乎无法在API中的任何位置找到向项目添加新属性。
我能够通过将其转换为MSBuild项目并以这种方式添加属性来解决该问题,但是这种方法会导致用户被提示csproj文件已在IDE外部进行了修改并要求他们重新加载,我不想要。
如何使用ENVDTE.Project实例添加属性,或者阻止“在环境外修改”提示以其他方式显示?
答案 0 :(得分:1)
使用MSBuild项目解决方法解决了我的问题。
导致用户提示项目文件已更改的问题是我在MSBuild项目对象上调用了.Save(),而不是我的ENVDTE项目对象。