我有一个使用System.Runtime.Serialization程序集的项目.我正在使用该DataContractSerializer程序集中的类型,但我遇到了问题.有两个组件:
C:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Runtime.Serialization.dll
C:\ WINDOWS\Microsoft.net \框架\ v4.0.30319\System.Runtime.Serialization.dll
它们都有相同的版本 - v4.0.30319.第一个有429kb大小,第二个有1037kb.我用反射器来查看类列表,第一个没有我需要的类(DataContractSerializerSettings).但是,第二个确实拥有它.
为什么该组件的大小和类有一些很大的不同?如果我使用第二个而不是第一个,那会没关系吗?
我目前正在使用Visual Studio 11 beta进行教程.尝试在我的一个类中设置字段值的最大长度时:
[MaxLength(50)]
public string LastName { get; set; }
Run Code Online (Sandbox Code Playgroud)
它出错并且不会让我编译因为MaxLength()函数存在于两个地方:
错误4类型' System.ComponentModel.DataAnnotations .MaxLengthAttribute'存在于'c:\ Users\me\Documents\Visual Studio 11\ContosoUniversity\packages\EntityFramework.4.1.10331.0\lib \net40\EntityFramework.dll'和' c:\ Program Files(x86)\ Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\System.ComponentModel.DataAnnotations.dll'
我试图删除这两个文件,但这只会导致更多问题,因为我的项目中的其他代码依赖于它们.
有没有办法告诉它使用其中一种?
所有这些方法似乎都不适合我..请参阅答案下的评论..还有其他想法吗?
谢谢
一些背景资料:
ICommand在我的类中实现了名为的接口MyCommand.MyCommand.cs:
public class MyCommand : ICommand
{
public bool CanExecute(object parameter)
{
throw new NotImplementedException();
}
public void Execute(object parameter)
{
throw new NotImplementedException();
}
public event EventHandler CanExecuteChanged;
}
Run Code Online (Sandbox Code Playgroud)
我发现当我尝试引用MyCommand在WPF 4.5应用程序中使用该类时,我收到以下错误:
"System.Windows.Input.ICommand"类型在未引用的程序集中定义.您必须添加对程序集'System.Windows,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e,Retargetable = Yes'的引用.
我不确定为什么会这样,或者我能做些什么来妥善解决它.在浏览互联网之后,我找到了关于System.Windows.dll 4.0.0.0在我的WPF应用程序中添加引用的答案.这样做允许我编译和运行应用程序,但我的IDE抱怨:
接口成员'void System.Windows.Markup.IComponentConnector.Connect(in,object)'未实现.
这发生在我的MainWindow.cs类中.是否有一个更好的解决方案,而不是只处理这个错误,所以我不是System.Windows.dll在WPF应用程序中添加一个真正不需要它的引用?而且我说它并不真的需要它,因为如果我将MyCommand类复制/粘贴到Wpf应用程序中它可以正常工作.它只有一个问题,因为我试图将它用作可移植类库.
更新:
似乎除此之外还有更多的东西.我创建了一个新的Wpf应用程序并使用NuGet来引用MvvmCross解决方案(因为它有一个MvxCommand对象).当我这样做时,我得到同样的错误.
David Kean 对类似问题的回答表明这应该通过VS2012/VS2013修复,如果没有,只需重新安装/修复.我完全删除了我的VS安装并从头开始重新安装(VS2013),但仍有此问题.那么,这真的是一个错误,还是我在这里做错了什么? …