错误8类型'ReactiveUI.ReactiveObject‘是在未引用的程序集中定义的。必须添加对程序集'ReactiveUI、Version=6.0.3.0、Culture=neutral、PublicKeyToken=null‘的引用。D:\git\ProjectName\ViewModels\AboutViewModel.cs 15 25 JIMS
从过去几个小时开始,我很难解决这个问题。我用Caliburn.Micro.ReactiveUI代替了Caliburn.Micro.ReactiveUI。我使用nuget引用了这个dll,最初有一个签名问题,但是通过修改我的MSBuild脚本来对这个程序集进行签名来解决这个问题。
现在我收到了这个错误,尽管我已经将一个引用添加到这个程序集中。我看了另一个人的问题,但没有任何帮助。
到目前为止一切都在努力
更新
进一步探讨这个问题,我注意到了这一点。我卸载了所有的软件包使用
PM> Uninstall-Package Caliburn.Micro.ReactiveUI -RemoveDependencies然后我重新安装,现在我使用dotPeek检查了dotPeek,这就是它所拥有的
ReactiveUI, Version=6.0.3.0, Culture=neutral, PublicKeyToken=null而且程序集还没有签名,现在我构建项目时已经有了StrongName=False,它将把未签名的dll签名为MSBuild脚本的一部分。
<Target Name="SignAssembly" Outputs="%(Reference.HintPath)" BeforeTargets="BeforeBuild">
<ConvertToAbsolutePath Paths="%(Reference.HintPath)">
<Output TaskParameter="AbsolutePaths" PropertyName="AssemblyPath" />
</ConvertToAbsolutePath>
<Message Text="Assembly Path: $(AssemblyPath)" />
<Exec Command=""$(SignerPath)\$(Signer)" -a "$(AssemblyPath)" > "$(OutputLogFile)"" IgnoreExitCode="true" />
<ReadLinesFromFile File="$(OutputLogFile)">
<Output TaskParameter="Lines" ItemName="OutputLogFile" />
</ReadLinesFromFile>
<Message Text="@(OutputLogFile->'%(Identity)', '%0a%0d')" />
<Delete Files="$(OutputLogFile)" />
</Target>不好意思,创建日志文件和删除只是为了调试。现在,我再次检查了来自dotPeek的程序集信息,这就是在签署dll后显示的内容。
ReactiveUI, Version=6.0.3.0, Culture=neutral, PublicKeyToken=831a72fa0d8caa87现在,我对出了什么问题有了一点了解,所以一旦程序集被签名,它就是MSBuild的一个不同的程序集。
那么,如何在Visual中更新对新签名dll的引用?
发布于 2015-03-28 16:16:37
您添加了ReactiveUI和Caliburn.Micro的包了吗?从您所说的判断,您只添加了只引用两个框架的核心库的Caliburn.Micro.ReactiveUI。
https://stackoverflow.com/questions/29311512
复制相似问题