我正在尝试在 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”仍然为假,我可以出错。
问题是,据我所知,没有办法仅在 vstemplate 或 csproj 模板的 XML 中声明您自己的属性。有谁知道如何为我可以使用的 Visual Studio 2010 模板创建自定义属性,就像我建议的那样?
在 vstemplate 或 csproj 模板 XML 中声明属性只会产生错误,Visual Studio 说它无法识别 vstemplate 或 csproj XML 文件中的 Attributes 标记。
我通常不会为应该如此简单的事情打扰某人,但要么我是盲人,要么在 Google 中输入了错误的关键字,但我找不到任何解决方案或如何做到这一点的示例。