我正在努力创建一些标记扩展,并开始获得非常奇怪的VS行为.我已经在单独的解决方案中提取并确定了问题.问题是VS无法在XAML中创建CLR对象.
这里是:
视图:
<Window x:Class="WpfApplication4.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wpfApplication4="clr-namespace:WpfApplication4">
<Window.Resources>
<wpfApplication4:Dog x:Key="doggy" />
</Window.Resources>
<Grid />
</Window>
Run Code Online (Sandbox Code Playgroud)
代码背后:
using System.Windows;
namespace WpfApplication4
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
Run Code Online (Sandbox Code Playgroud)
狗类:
namespace WpfApplication4
{
public class Dog
{
}
}
Run Code Online (Sandbox Code Playgroud)
App.Xaml(App.Xaml.cs中没有代码):
<Application x:Class="WpfApplication4.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)
我得到的例外情况:
Error 1 The name "Dog" does not exist in the namespace "clr-namespace:WpfApplication4". \\hopr1\folders$\vxk\Documents\Visual Studio 2012\Projects\WpfApplication4\MainWindow.xaml 6 9 WpfApplication4
Run Code Online (Sandbox Code Playgroud)
我能够运行解决方案,但设计师失败并出现"无效标记"错误任何想法?
编辑
我正在运行VS 2012 Update 2相同的解决方案在VS 2012 Update 1中运行
Jor*_*dan 112
对于现在遇到这种情况的人来说,在你做任何事情之前......如果你确定你的类/命名空间是正确的并且重建并没有解决你的问题:
尝试重新启动Visual Studio
而已!
这似乎是Visual Studio 2012的一个错误(似乎也会影响支持XAML开发的所有其他版本)
更新:如果重新启动Visual Studio不起作用,请重新启动整个PC.
更新:如@Dunk的评论中所述,如果重新启动Visual Studio不起作用,请尝试删除.suo文件
Gra*_*mMc 47
您的解决方案正在网络共享上运行.在网络共享上运行时,.Net(和Visual Studio)应用程序可能会遇到权限/访问问题.
将您的解决方案复制到本地驱动器(完全信任),你应该没问题.
可以让网络驱动器完全信任 - 你可以在StackOverflow和其他地方找到答案 - 但根据我的经验,当我这样做时我会遇到障碍,所以尽量避免它,除非它对于手头的问题.
例如,此问题提供了有关如何执行此操作的说明:
为Visual Studio 2012和.Net 4.0提供FullTrust到UNC共享
我只用VS2010试过这个(如链接所示)你可能会更喜欢2012.
Wou*_*ter 31
我遇到了同样的问题,但我的文件存储在本地.我的IValueConverter与使用它的视图驻留在不同的程序集中.即使VS2013 IntelliSense建议如下,它也无法正常工作:
xmlns:conv="clr-namespace:MySharedAssembly.Converters"
Run Code Online (Sandbox Code Playgroud)
在我最后明确添加了程序集后,它工作正常:
xmlns:conv="clr-namespace:MySharedAssembly.Converters;assembly=MySharedAssembly"
Run Code Online (Sandbox Code Playgroud)
Ste*_*hev 11
我坚持这个错误几个小时.程序集和命名空间是正确的,类和引用也是正确的.编译并运行正常,只有设计师在某种程度上与我有问题.唯一有效的方法
我正在使用3d party portable.library,我只在x64版本中使用过.
con*_*tio 11
它仍然发生在VS 2015中.我在App.xaml中取出了SomeConverter:
<Application.Resources>
<!--Value Converters-->
<local:SomeConverter x:Key="mySomeConverter"/>
Run Code Online (Sandbox Code Playgroud)
Strg-Shift-B
把它放回去 - 它起作用了.
归档时间: |
|
查看次数: |
75073 次 |
最近记录: |