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 次 |
最近记录: |