【问题标题】:Why will my C# template not compile as a new project?为什么我的 C# 模板不能编译为新项目?
【发布时间】:2016-04-15 05:38:49
【问题描述】:

我创建了一个希望用于未来项目的模板。模板的项目名称是“模板”。我浏览了 Visual Studio 文件 >> 导出模板并将项目导出为项目模板。

然后,我在使用该模板的新解决方案中创建了一个新项目,并将其命名为其他名称。 (XIVA成就)。然后,正如预期的那样,它将每次出现的“模板”替换为“XIVAchievements”。

我可以编译并运行 Template 项目,但是对于新项目,它不会编译。每次我从 theme.xaml 文件中进行任何引用时都会出错。 Theme.xaml 开始:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:conv="clr-namespace:XIVAchievements.Converters">
<!--Converters-->
<conv:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<conv:BooleanToWindowBGSelectionConverter x:Key="BooleanToWindowBGSelectionConverter" />

最后两行提供了错误,指出: “命名空间“clr-namespace:XIVAchievements.Converters”中不存在名称“BooleanToVisibilityConverter”。”

当然可以。我曾尝试关闭并重新打开 VS,以及清理和重建,但似乎没有任何效果。当手动输入错误或 xmlns 的行时,智能感知正确地给出了 IO 引用的选项。

【问题讨论】:

  • 它在不同的程序集中吗?如果是这样,您必须在 xmlns:xx="clr-namespace:blah.blah" 属性中指定程序集。
  • 所以这只是孤立地单独构建新项目,没有任何引用它?这听起来有点熟悉,但我并没有把手指放在上面......
  • 这门课是公开的,所有那些我容易忘记的显而易见的东西?
  • 啊,我已经解决了,对不起!我不应该将它称为模板,因为在整个过程中我都有对模板的引用,例如&lt;Setter Property="Control.Template"&gt; 等。.Template 也有机会成为 .XIVAchievements,这就是导致问题的原因。不要自我:下次叫它别的东西!
  • 太棒了!很高兴你成功了!

标签: c# wpf xaml templates


【解决方案1】:

我傻了。仔细看了很久,问题是我把它叫做Template,而我的主题XAML中使用了Template这个词,比如:

<Setter Property="Control.Template">

.Template 正在更改为 .XIVAchievements。我把这些放回 .Template ,它现在可以正常工作了。下次导出模板之前应该给一个不同的项目名称!

【讨论】:

    猜你喜欢
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多