【发布时间】:2010-10-24 12:39:44
【问题描述】:
我正在开发 Visual Studio 2010 扩展,我想向 MSBuild 项添加一个属性,如下所示:
<EmbeddedResource Include="SomeFile.xml">
<FooAttribute>%(Filename)%(Extension)</FooAttribute>
</EmbeddedResource>
所以,到目前为止,我发现的唯一方法是使用方法 IVsBuildPropertyStorage.SetItemAttribute 。这适用于简单的字符串,但是当我尝试使用 MSBuild 特有的字符时,我得到了这个结果:
<EmbeddedResource Include="SomeFile.xml">
<FooAttribute>%29%25%28Filename%29%25%28Extension%29</FooAttribute>
</EmbeddedResource>
这意味着 SetItemAttribute 会自动从 MsBuild 字符中转义,我不希望这样。
【问题讨论】:
-
您确定 MSBuild 不会接受这些字符的转义形式吗?
-
它接受那些字符的转义形式...但我不想转义我想在我的项目文件中使用“%(Filename)%(Extension)”。如果我让 "%29%25%28Filename%29%25%28Extension%29" msbuild 会把它当作一个字符串常量。
标签: c# visual-studio-2010 msbuild envdte vsix