【问题标题】:Creating Custom Attributes in Visual Studio 2010 Project Template?在 Visual Studio 2010 项目模板中创建自定义属性?
【发布时间】:2012-08-12 00:15:33
【问题描述】:

我正在尝试在我的项目模板中在 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”(例如 Imported Properly),如果导入成功,我可以在 Import 调用期间将其设置为 true。

如果在所有导入调用之后属性“ImportedProp”仍然为假,我会出错。

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

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

我通常不会为应该如此简单的事情打扰别人,但要么我是盲人,要么在 Google 中输入了错误的关键字,但我找不到任何解决方案或如何做到这一点的示例.

【问题讨论】:

    标签: c# visual-studio-2010


    【解决方案1】:

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

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

    然后你可以随心所欲地使用它。在整个项目文件或模板中控制您的导入、引用包含或其他任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多