Mac*_*iak 7 msbuild vsx visual-studio vsix
如何从Visual Studio Extension将自定义MsBuild属性传递给Visual Studio构建引擎(我想编写自定义加载项)?就像Visual Studio的本身传递的属性,如$(Configuration)和$(Platform),我想附加到构建过程,并通过我自己的财产(例如$(MyCustomProperty) = "foobar").我知道可以使用MsBuild命令行(/p:Property)完成它,但我想从扩展中完成它.
这是我想要的一个例子:visual studio工具栏上的一个文本框,用户可以输入一些文本 - 一个值,我想传递给构建引擎.
然后在.csproj中:
<PropertyGroup>
<MyCustomProperty Condition=" '$(MyCustomProperty)' == '' ">DefaultValue</MyCustomProperty>
</PropertyGroup>
<Target Name="AfterBuild" Condition=" '$(MyCustomProperty)' = 'DoAfterBuild' ">
...
</Target>
Run Code Online (Sandbox Code Playgroud)
因此,AfterBuild只有当用户输入DoAfterBuild我的扩展程序的文本框时,目标才会被激活
您可以请求服务IVsBuildPropertyStorage,它有以下方法:
SetPropertyValue:由项目子类型用于设置 MSBuild 属性值。
像这样的东西:
EnvDTE.Project proj = ...;
var sol = Package.GetGlobalService(typeof(VsSolution)) as IVsSolution;
IVsHierarchy hier;
sol.GetProjectOfUniqueName(p.UniqueName, out hier);
var storage = hier as IVsBuildPropertyStorage;
storage.SetPropertyValue(..);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2900 次 |
| 最近记录: |