在Visual Studio 2010项目模板中创建自定义属性?

时间:2012-08-15 17:04:57

标签: c# visual-studio-2010

我正在尝试在XML级别的项目模板中创建一个自定义命名属性来存储一个布尔值,我可以用它来跟踪我在项目模板文件中执行的某些导入是否成功。

我希望能够像这样声明项目模板文件的属性:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" InitialTargets="TestImports" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Attributes>
    <Attribute Name="ImportedProp" Value="False" />
  </Attributes>
  <Import Condition="Exists('..\SomeProj.props')" ImportedProp="true" Project="..\SomeProj.props" />
  <Target Name="TestImports">
  <Error Text="Unable to find Common Properties." Condition="'$(ImportedProp)' == true" />
  </Target>

上述声明属性的方法遗憾地无效。 Visual Studio根本不喜欢它。它编译正常,但是当您使用模板在Visual Studio中创建新项目时会出错。

因此,我想创建一个属性名称“ImportedProp”(例如,正确导入),并且能够在导入调用期间将其设置为如果导入成功则为true。

然后,如果在所有导入调用后属性“ImportedProp”仍然为false,我可以输出错误。

问题是,据我所知,没有办法仅在vstemplate或csproj模板的XML中声明自己的属性。有谁知道如何为我可以使用的Visual Studio 2010模板创建自定义属性,就像我建议的那样?

在vstemplate或csproj模板XML中声明属性只会产生一个错误,其中Visual Studio表示它无法识别vstemplate或csproj XML文件中的Attributes标记。

我通常不会打扰某人应该像这样简单的事情,但要么我是盲目的,要么在Google中键入错误的关键字,但我找不到任何解决方案或如何做到这一点的例子

1 个答案:

答案 0 :(得分:0)

事实证明,还有另一种方法可以检查这些导入。您无法创建自定义属性,但可以在项目属性(.props)或项目文件中创建一个值,如此。

<PropertyGroup>
<SettableVal> *Value* </SettableVal>
</PropertyGroup>

然后你可以随意使用它。在整个项目文件或模板中控制您的导入,引用包括或其他。

相关问题