<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel><title>hh's Blog</title>
<description>A short description of the blog.</description>
<generator>Miniblog.Core</generator>
<link>http://117.72.66.20/</link>
<item>
  <title>CodeRush插件的一些设置</title>
  <link>http://117.72.66.20/blog/coderush/</link>
  <description>&lt;p&gt;right margin line,spell checker,structural highlighting&lt;/p&gt;</description>
  <author>hh</author>
  <category>ide</category>
  <category>ide</category>
  <guid isPermaLink="false">http://117.72.66.20/blog/coderush/</guid>
  <pubDate>Fri, 01 Aug 2025 12:10:22 GMT</pubDate>
</item>
<item>
  <title>Prism区域注册遇到的一个问题</title>
  <link>http://117.72.66.20/blog/wpfprismregionmanager/</link>
  <description>&lt;p&gt;wpf开发使用prism，如果有多个窗口作为主窗口进行切换，默认只有在app.xaml.cs通过CreateShell创建的窗口会自动注册区域，其它的窗口注册区域的方式：手动调用RegionManager.SetRegionManager，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;var shell = Application.Current.MainWindow = window ?? ContainerLocator.Current.Resolve&amp;lt;T&amp;gt;();&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;RegionManager.SetRegionManager(shell, ContainerLocator.Current.Resolve&amp;lt;IRegionManager&amp;gt;());&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上面适用于shell里的控件指定了其RegionName的情况，如果没指定的情况，可以按下面这样操作：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public MainWindow()&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; InitializeComponent();&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; var regionManager= ContainerLocator.Current.Resolve&amp;lt;IRegionManager&amp;gt;();&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; if (regionManager != null)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; {&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetRegionManager(regionManager, this.flyoutsControlRegion, RegionNames.FlyoutRegion);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SetRegionManager(regionManager, this.rightWindowCommandsRegion, RegionNames.ShowSearchPatientRegion);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; }&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;void SetRegionManager(IRegionManager regionManager, DependencyObject regionTarget, string regionName)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;{&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; RegionManager.SetRegionName(regionTarget, regionName);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; &amp;nbsp; RegionManager.SetRegionManager(regionTarget, regionManager);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;直接通过&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color: #bfe6ff; font-family: monospace;"&gt;RegionManager.SetRegionName(regionTarget, regionName)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;设置控件的RegionName，再通过&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color: #bfe6ff; font-family: monospace;"&gt;RegionManager.SetRegionManager(regionTarget, regionManager)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;设置其区域。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;</description>
  <author>hh</author>
  <category>prism</category>
  <category>prism</category>
  <category>wpf</category>
  <guid isPermaLink="false">http://117.72.66.20/blog/wpfprismregionmanager/</guid>
  <pubDate>Sat, 07 Jun 2025 01:19:15 GMT</pubDate>
</item>
<item>
  <title>数据库迁移工具DBConvert Studio</title>
  <link>http://117.72.66.20/blog/数据库迁移工具dbconvert-studio202502120902/</link>
  <description>&lt;p&gt;官网：&lt;a href="https://dbconvert.com/dbconvert-studio/"&gt;Database Migration and Synchronization tool. | DBConvert Studio.&lt;/a&gt;&lt;/p&gt;</description>
  <author>hh</author>
  <category>database</category>
  <category>database</category>
  <guid isPermaLink="false">http://117.72.66.20/blog/数据库迁移工具dbconvert-studio202502120902/</guid>
  <pubDate>Wed, 12 Feb 2025 09:02:05 GMT</pubDate>
</item>
<item>
  <title>调用ReactiveUICommand，报错线程无法访问此对象，因为另一个线程拥有该对象。</title>
  <link>http://117.72.66.20/blog/reactiveuicommand/</link>
  <description>&lt;p&gt;wpf项目，使用ReactiveUI，只引用了ReactiveUI.Fody，调用命令时，就遇到了&amp;ldquo;线程无法访问此对象，因为另一个线程拥有该对象&amp;rdquo;的异常，在stackoverflow找到了解决方案，引用ReactivUI.WPF包即可，原问题链接：&lt;a href="https://stackoverflow.com/questions/52220671/reactiveui-sync-reactivecommand-invocation-cause-system-invalidoperationexceptio"&gt;c# - ReactiveUI sync ReactiveCommand invocation cause System.InvalidOperationException - Stack Overflow&lt;/a&gt;&lt;/p&gt;</description>
  <author>hh</author>
  <category>reactiveui</category>
  <category>reactiveui</category>
  <guid isPermaLink="false">http://117.72.66.20/blog/reactiveuicommand/</guid>
  <pubDate>Tue, 17 Dec 2024 03:47:02 GMT</pubDate>
</item>
<item>
  <title>Prism模块加载的注意事项</title>
  <link>http://117.72.66.20/blog/prismmoduleload/</link>
  <description>&lt;p&gt;prism的模块加载，分为按需加载和自动加载，在wpf项目中，自动加载是在主窗体初始化完成才进行，如果主窗体的viewmodel依赖于某个模块，可以在主窗体InitializeComponent()方法之前指定加载该模块，这样viewmodel实例化时就能正常使用模块了。&lt;/p&gt;</description>
  <author>hh</author>
  <category>prism</category>
  <category>prism</category>
  <category>wpf</category>
  <guid isPermaLink="false">http://117.72.66.20/blog/prismmoduleload/</guid>
  <pubDate>Tue, 17 Dec 2024 03:30:18 GMT</pubDate>
</item>
<item>
  <title>.NET Core WPF项目使用Prism进行模块化编程，视图无法加载资源字典</title>
  <link>http://117.72.66.20/blog/wpfprismresourcedictionary/</link>
  <description>&lt;p&gt;跟着一个教程，学习Prism模块化开发，教程里使用的是.NET Framework，把视图写在不同项目里，再生成dll通过反射加载视图模块，使用.NET Core这么做时，视图无法加载资源字典，排查后发现是缺失了项目的依赖清单文件，即项目生成目录里的XXX.deps.json文件，把该文件也复制到入口程序根目录即可解决问题。&lt;/p&gt;</description>
  <author>hh</author>
  <category>wpf</category>
  <category>prism</category>
  <category>wpf</category>
  <guid isPermaLink="false">http://117.72.66.20/blog/wpfprismresourcedictionary/</guid>
  <pubDate>Mon, 09 Dec 2024 13:05:46 GMT</pubDate>
</item>
<item>
  <title>切换数据库后EFCore无法使用迁移</title>
  <link>http://117.72.66.20/blog/efcoremigration/</link>
  <description>&lt;p&gt;在项目要进行数据库切换或者接手别人的项目时，如果项目已经有迁移记录了，而目标数据库是空的，这时候直接迁移会失败，最简单的解决办法就是直接删除所有迁移记录，重新生成迁移并更新数据库。&lt;/p&gt;</description>
  <author>hh</author>
  <category>efcore</category>
  <category>efcore</category>
  <guid isPermaLink="false">http://117.72.66.20/blog/efcoremigration/</guid>
  <pubDate>Mon, 09 Dec 2024 12:47:33 GMT</pubDate>
</item>
<item>
  <title>WPF使用EFCore无法使用迁移</title>
  <link>http://117.72.66.20/blog/wpfefcoremigration/</link>
  <description>&lt;p&gt;.net core wpf项目使用efcore时，会遇到无法进行迁移的问题，找到的解决办法如下：&lt;/p&gt;
&lt;p&gt;①在入口程序安装Microsoft.EntityFrameworkCore.Design包。&lt;/p&gt;
&lt;p&gt;②在数据库上下文项目添加一个实现IDesignTimeDbContextFactory接口的类&lt;/p&gt;
&lt;p&gt;例如：&lt;/p&gt;
&lt;pre&gt;&lt;span style="color: #cc99ff;"&gt;&lt;strong&gt;public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory&amp;lt;SqliteDbContext&amp;gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc99ff;"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc99ff;"&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; public SqliteDbContext CreateDbContext(string[] args)&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc99ff;"&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; {&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc99ff;"&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; var optionsBuilder = new DbContextOptionsBuilder&amp;lt;SqliteDbContext&amp;gt;();&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc99ff;"&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return new SqliteDbContext(optionsBuilder.Options, null);&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc99ff;"&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; }&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #cc99ff;"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/span&gt;&lt;/pre&gt;</description>
  <author>hh</author>
  <category>efcore</category>
  <category>wpf</category>
  <category>efcore</category>
  <guid isPermaLink="false">http://117.72.66.20/blog/wpfefcoremigration/</guid>
  <pubDate>Mon, 09 Dec 2024 12:11:42 GMT</pubDate>
</item>
<item>
  <title>Miniblog.Core部署记录</title>
  <link>http://117.72.66.20/blog/miniblogdeployrecord/</link>
  <description>&lt;h2&gt;1.项目介绍&lt;/h2&gt;
&lt;p&gt;断断续续找了好久.NET开发的博客项目，终于找到了这个画面简洁编辑功能又相对丰富项目，地址是：&lt;span style="color: #33cccc;"&gt;&lt;a style="color: #33cccc;" href="https://github.com/madskristensen/Miniblog.Core"&gt;madskristensen/Miniblog.Core: An ASP.NET Core blogging engine&lt;/a&gt;&lt;/span&gt;。&lt;/p&gt;
&lt;h2&gt;2.问题记录&lt;/h2&gt;
&lt;h3&gt;①生产环境下，访问系统请求一直被重定向&lt;/h3&gt;
&lt;p&gt;这是因为系统有一条配置，如果请求url没有www前缀，则请求会被重定向，appsettings.json里该配置默认是启用的，而appsettings.Development.json里默认是关闭的，所以没做改动的话，会导致生产环境应用启动了却无法访问。&lt;/p&gt;
&lt;h3&gt;②在Linux下运行程序提示Dart Sass Host相关的库文件不存在&lt;/h3&gt;
&lt;p&gt;NuGet添加Microsoft.ClearScript.V8.Native.linux-x64包即可解决。&lt;/p&gt;</description>
  <author>hh</author>
  <category>miniblog</category>
  <guid isPermaLink="false">http://117.72.66.20/blog/miniblogdeployrecord/</guid>
  <pubDate>Mon, 09 Dec 2024 09:29:14 GMT</pubDate>
</item></channel>
</rss>