<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>hh's Blog</title>
  <id>http://117.72.66.20/</id>
  <subtitle>A short description of the blog.</subtitle>
  <generator uri="https://github.com/madskristensen/Miniblog.Core" version="1.0">Miniblog.Core</generator>
  <updated>2025-08-01T12:10:22Z</updated>
  <entry>
    <id>http://117.72.66.20/blog/coderush/</id>
    <title>CodeRush插件的一些设置</title>
    <updated>2025-08-01T12:10:22Z</updated>
    <published>2025-08-01T12:10:22Z</published>
    <link href="http://117.72.66.20/blog/coderush/" />
    <author>
      <name>test@example.com</name>
      <email>hh</email>
    </author>
    <category term="ide" />
    <category term="ide" />
    <content type="html">&lt;p&gt;right margin line,spell checker,structural highlighting&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>http://117.72.66.20/blog/wpfprismregionmanager/</id>
    <title>Prism区域注册遇到的一个问题</title>
    <updated>2025-06-07T01:23:36Z</updated>
    <published>2025-06-07T01:19:15Z</published>
    <link href="http://117.72.66.20/blog/wpfprismregionmanager/" />
    <author>
      <name>test@example.com</name>
      <email>hh</email>
    </author>
    <category term="prism" />
    <category term="prism" />
    <category term="wpf" />
    <content type="html">&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;</content>
  </entry>
  <entry>
    <id>http://117.72.66.20/blog/数据库迁移工具dbconvert-studio202502120902/</id>
    <title>数据库迁移工具DBConvert Studio</title>
    <updated>2025-02-12T09:02:05Z</updated>
    <published>2025-02-12T09:02:05Z</published>
    <link href="http://117.72.66.20/blog/数据库迁移工具dbconvert-studio202502120902/" />
    <author>
      <name>test@example.com</name>
      <email>hh</email>
    </author>
    <category term="database" />
    <category term="database" />
    <content type="html">&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;</content>
  </entry>
  <entry>
    <id>http://117.72.66.20/blog/reactiveuicommand/</id>
    <title>调用ReactiveUICommand，报错线程无法访问此对象，因为另一个线程拥有该对象。</title>
    <updated>2024-12-17T03:47:02Z</updated>
    <published>2024-12-17T03:47:02Z</published>
    <link href="http://117.72.66.20/blog/reactiveuicommand/" />
    <author>
      <name>test@example.com</name>
      <email>hh</email>
    </author>
    <category term="reactiveui" />
    <category term="reactiveui" />
    <content type="html">&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;</content>
  </entry>
  <entry>
    <id>http://117.72.66.20/blog/prismmoduleload/</id>
    <title>Prism模块加载的注意事项</title>
    <updated>2024-12-17T03:34:28Z</updated>
    <published>2024-12-17T03:30:18Z</published>
    <link href="http://117.72.66.20/blog/prismmoduleload/" />
    <author>
      <name>test@example.com</name>
      <email>hh</email>
    </author>
    <category term="prism" />
    <category term="prism" />
    <category term="wpf" />
    <content type="html">&lt;p&gt;prism的模块加载，分为按需加载和自动加载，在wpf项目中，自动加载是在主窗体初始化完成才进行，如果主窗体的viewmodel依赖于某个模块，可以在主窗体InitializeComponent()方法之前指定加载该模块，这样viewmodel实例化时就能正常使用模块了。&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>http://117.72.66.20/blog/wpfprismresourcedictionary/</id>
    <title>.NET Core WPF项目使用Prism进行模块化编程，视图无法加载资源字典</title>
    <updated>2024-12-09T13:06:03Z</updated>
    <published>2024-12-09T13:05:46Z</published>
    <link href="http://117.72.66.20/blog/wpfprismresourcedictionary/" />
    <author>
      <name>test@example.com</name>
      <email>hh</email>
    </author>
    <category term="wpf" />
    <category term="prism" />
    <category term="wpf" />
    <content type="html">&lt;p&gt;跟着一个教程，学习Prism模块化开发，教程里使用的是.NET Framework，把视图写在不同项目里，再生成dll通过反射加载视图模块，使用.NET Core这么做时，视图无法加载资源字典，排查后发现是缺失了项目的依赖清单文件，即项目生成目录里的XXX.deps.json文件，把该文件也复制到入口程序根目录即可解决问题。&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>http://117.72.66.20/blog/efcoremigration/</id>
    <title>切换数据库后EFCore无法使用迁移</title>
    <updated>2024-12-09T12:47:33Z</updated>
    <published>2024-12-09T12:47:33Z</published>
    <link href="http://117.72.66.20/blog/efcoremigration/" />
    <author>
      <name>test@example.com</name>
      <email>hh</email>
    </author>
    <category term="efcore" />
    <category term="efcore" />
    <content type="html">&lt;p&gt;在项目要进行数据库切换或者接手别人的项目时，如果项目已经有迁移记录了，而目标数据库是空的，这时候直接迁移会失败，最简单的解决办法就是直接删除所有迁移记录，重新生成迁移并更新数据库。&lt;/p&gt;</content>
  </entry>
  <entry>
    <id>http://117.72.66.20/blog/wpfefcoremigration/</id>
    <title>WPF使用EFCore无法使用迁移</title>
    <updated>2024-12-09T12:23:41Z</updated>
    <published>2024-12-09T12:11:42Z</published>
    <link href="http://117.72.66.20/blog/wpfefcoremigration/" />
    <author>
      <name>test@example.com</name>
      <email>hh</email>
    </author>
    <category term="efcore" />
    <category term="wpf" />
    <category term="efcore" />
    <content type="html">&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;</content>
  </entry>
  <entry>
    <id>http://117.72.66.20/blog/miniblogdeployrecord/</id>
    <title>Miniblog.Core部署记录</title>
    <updated>2025-09-12T07:02:21Z</updated>
    <published>2024-12-09T09:29:14Z</published>
    <link href="http://117.72.66.20/blog/miniblogdeployrecord/" />
    <author>
      <name>test@example.com</name>
      <email>hh</email>
    </author>
    <category term="miniblog" />
    <content type="html">&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;</content>
  </entry></feed>