Visual Studio 2017让我知道今天早上有对Fody版本5的升级。我接受了Fody和PropertyChanged.Fody并对其进行了NuGet软件包更新。
现在,我的项目/解决方案将不再构建。
错误是:
“ Fody仅在MSBuild 16及更高版本上受支持。当前版本:15。”
我尝试卸载,关闭VS,然后重新安装均无济于事。
当我构建我的 .NET Core (NETStandard v2.0) 项目时,我收到以下警告:
ViewModels:[FodyPackageReference] Fody:PropertyChanged.Fody 的包引用不包含 PrivateAssets='All'
该警告参考了PropertyChanged.Fody NuGet 包。
虽然警告不会停止构建,但我想解决警告。但是,我不明白它试图传达什么。
**这是Visual Studio 2013中的一个问题.
我得到的错误是巨大的,而且大多无用,但其关键在于
Error 130 Fody: Could not load 'ModuleWeaver' from 'PropertyChanged.Fody, Version=1.50.3.0, Culture=neutral, PublicKeyToken=null' due to ReflectionTypeLoadException.
It is possible you need to update the package.
exception.LoaderExceptions:
System.IO.FileLoadException: Could not load file or assembly 'Mono.Cecil, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Mono.Cecil, Version=0.9.6.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756'
Run Code Online (Sandbox Code Playgroud)
再一次,因为没有变化,我一般不知道它的问题是什么.它正在寻找的DLL坐在它一直坐的同一个地方.
编辑:显然在这一点上它已经厌倦了吐出那个错误所以它捏造了一个新错误
Error 42 The "Fody.WeavingTask" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load file …
Run Code Online (Sandbox Code Playgroud) 在最终的编织装配中是否有任何Fody痕迹或其依赖关系(参考)?
我在Mac上的Xamarin Studio中构建PCL时遇到了问题.它在调试模式下工作正常但是fody在发布模式下抛出异常.
构建期间的异常如下所示.
Error: Fody: An unhandled exception occurred:
Exception:
Symbol file `XXX/obj/Release/XXX.dll.mdb' does not match assembly `XXX/obj/Release/XXX.dll'
StackTrace:
at Mono.CompilerServices.SymbolWriter.MonoSymbolFile.CheckGuidMatch (Guid other, System.String filename, System.String assembly) [0x00000] in <filename unknown>:0
at Mono.CompilerServices.SymbolWriter.MonoSymbolFile..ctor (System.String filename, Mono.Cecil.ModuleDefinition module) [0x00000] in <filename unknown>:0
at Mono.CompilerServices.SymbolWriter.MonoSymbolFile.ReadSymbolFile (Mono.Cecil.ModuleDefinition module, System.String filename) [0x00000] in <filename unknown>:0
at Mono.Cecil.Mdb.MdbReaderProvider.GetSymbolReader (Mono.Cecil.ModuleDefinition module, System.String fileName) [0x00000] in <filename unknown>:0
at Mono.Cecil.ModuleReader.ReadSymbols (Mono.Cecil.ModuleDefinition module, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0
at Mono.Cecil.ModuleReader.CreateModuleFrom (Mono.Cecil.PE.Image image, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename …
Run Code Online (Sandbox Code Playgroud) 我打算在我的一个项目中使用Fody.PropertyChanged,它是通过NuGet正确添加的:
Install-Package PropertyChanged.Fody
Run Code Online (Sandbox Code Playgroud)
我意识到,这是在错误的项目中,所以我使用了uninstall命令:
Uninstall-Package PropertyChanged.Fody
Run Code Online (Sandbox Code Playgroud)
之后我将它添加到正确的项目中.
现在,当我尝试构建我的解决方案时,我在初始项目中得到以下错误,该错误不应该安装Fody:
Fody:你似乎没有配置任何织布工.尝试将Fody nuget包添加到您的项目中.请查看 http://nuget.org/packages?q=fody获取可用软件包列表.
在项目中没有引用Fody,我从packages.config
文件中删除了Fody引用,并且没有XML文件.
我还该怎么办?
我在一个项目中广泛使用PostSharp的免费版本.我想使用PropertyChanged.Fody插件自动处理所有PropertyChanged通知.
(我知道PostSharp为此提供了一个库,但它不是免费的,因此我想使用Fody)
看来,当我在项目中同时使用PostSharp和Fody时,调试符号文件与源代码不同步.当我调试项目时,我无法再正确地执行代码.它看起来类似于将VS中的调试器附加到源代码与执行二进制文件的源代码不同的进程.
如果我禁用PostSharp或Fody,则调试立即再次工作.
是否可以在同一个项目中同时使用PostSharp和Fody?这需要特殊/额外配置吗?
我有一个使用Caliburn.Micro的WPF应用程序.当我希望应用程序等待在后台完成某些工作时,我希望能够使用阴影和进度环(来自MahApps.Metro)覆盖应用程序.
我现在所拥有的实际上是有效的,但叠加层在设计时始终处于开启状态.我的ShellView
窗口看起来像这样:
<Window ...>
...
<Grid>
...
<Rectangle x:Name="waitShadow" Fill="#3f000000" Stroke="Black" StrokeThickness="0" Visibility="{Binding IsWaiting, Converter={StaticResource BooleanToVisibilityConverter}}" Grid.RowSpan="2"/>
<ContentControl ... Visibility="{Binding IsWaiting, Converter={StaticResource BooleanToVisibilityConverter}}">
<Controls:ProgressRing ...> <!-- from MahApps.Metro -->
</Controls:ProgressRing>
</ContentControl>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
我的ShellViewModel
班级有一个公共bool属性IsWaiting
,当我把它设置为true
阴影和响铃出现,一切都被禁用.当我将它设置为false
它去恢复正常,所以绑定工作(我使用Fody用的PropertyChanged插件).唯一的问题是该Visibility
属性在设计时没有崩溃.
有没有更好的方法让叠加层在设计时有效?
我正在做一个 WPF 项目。为了防止大量锅炉代码,我使用了 Fody PropertyChanged。这是我的问题的一个片段:
[ImplementPropertyChanged]
public class MyViewModel : MyViewModelBase
{
public bool HasCardSet
{
get
{
return Person != null && Person.Card != null;
}
}
public void SavePerson()
{
Person.Card = new Card();
}
}
[ImplementPropertyChanged]
public class MyViewModelBase : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public Person Person { get; set; }
}
[ImplementPropertyChanged]
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public Card Card { get; set; }
}
[ImplementPropertyChanged]
public class Card …
Run Code Online (Sandbox Code Playgroud) 我在WPF(PropertyChanged)中有一个非常简单的项目 - 一个视图,一个视图模型和一个模型.在这个项目中,我使用包PropertyChanged.Fody.当我想在10秒后构建这个项目时,我收到两条错误消息:
唯一的解决方案是:
这是非常不愉快的,但我非常想使用PropertyChanged.Fody
今天,我在网上阅读了有关Fody.PropertyChanged的新插件,它非常简单易用。
目前,我正在使用MVVMCross,我们必须一次又一次调用RaisePropertyChange(()=> Property)。在MVVMCross中使用Fody.PropertyChanged是否安全?任何有经验的人,我也会观看使用MVVMCross和Foody.RaisePropertyChange的示例。
还是MVVMCross中有任何解决方案,可以一次又一次使用RaisPropertyChange()摆脱它
谢谢,
最良好的问候
创建面向 .net 4.5.1 的 winform 项目
安装包 PropertyChanged.Fody
[ImplementPropertyChanged]
public class PersonFody
{
public string Name { get; set; }
}
PersonFody _fod = new PersonFody();
_fod. //Name is the only property and no events to subscribe
Is it possible to subscribe to a PropertyChanged event at design time using fody?
Run Code Online (Sandbox Code Playgroud)