通过HearthDb生成带PlayReq的CardDefs.xml
Posted Chuck Lu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过HearthDb生成带PlayReq的CardDefs.xml相关的知识,希望对你有一定的参考价值。
HearthDb项目从另外一个项目导入了初始的xml文件
https://github.com/HearthSim/HearthDb/blob/master/HearthDb/HearthDb.csproj
<PropertyGroup> <PreBuildEvent>if exist $(ProjectDir)hsdata ( git -C "$(ProjectDir)hsdata" fetch git -C "$(ProjectDir)hsdata" reset --hard origin/master ) else ( git clone --depth=1 https://github.com/HearthSim/hsdata.git "$(ProjectDir)hsdata" ) if "$(ConfigurationName)" == "Release" ( powershell -ExecutionPolicy Unrestricted -file "$(ProjectDir)verify.ps1" "$(ProjectDir)" ) xcopy /Y "$(ProjectDir)hsdataCardDefs.xml" "$(ProjectDir)CardDefs.xml*"</PreBuildEvent> </PropertyGroup>
加载卡牌文件的代码
https://github.com/HearthSim/HearthDb/blob/master/HearthDb/Cards.cs#L23
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HearthDb.CardDefs.xml"); if(stream == null) return;
需要注意的是xml文件,是以embedded resource嵌入项目的
<ItemGroup> <EmbeddedResource Include="CardDefs.xml" /> </ItemGroup>
Visual Studio: How to store an image resource as an Embedded Resource?
Note: This answer is not the recommended way of handling image resources. It just addresses the particular problem as described by the question (i.e. to include an image as an embedded resourse).
Don‘t add the image as a resource. I would rather do the following:
- Create the image/icon and save it to a file
- Choose Project -> Add Existing Item and add the file
- Set the Build Action to Embedded Resource
You can then access this resource using
Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceUri)
This way the image is not magically added to the projects resource file and you will only have one copy of the image stored in the assembly‘s resources.
从版本16.0.0.37060开始,就不附带playreq了
https://github.com/HearthSim/HearthDb/issues/18
patch 15.6.2.36393 still has the PlayRequirement section, when it comes to patch 16.0.0.37060, the section lost.
以上是关于通过HearthDb生成带PlayReq的CardDefs.xml的主要内容,如果未能解决你的问题,请参考以下文章