Commit 37489a6f 刘韬

添加语言选项

1 个父辈 e35141b7
......@@ -100,6 +100,7 @@ namespace OnlineStore
{
if (OpenResourceLog)
{
getLangRes("zh-CN");
if (!LangMap["zh-CN"].ContainsKey(id) && checkInterid(id))
LOG.Info("No Res id:" + id + "#" + defaultStr);
}
......
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.Common</RootNamespace>
<AssemblyName>Common</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
</configSections>
<appSettings>
<!--是否开机自动启动料仓-->
<add key="App_AutoRun" value="0" />
<add key="App_Title" value="DUO料仓" />
<add key="App_AutoRun" value="0"/>
<add key="App_Title" value="DUO料仓"/>
<!-- 开始吹气的判断值(配置值=服务器发送的湿度值-开始吹气值)-->
<add key="StartBlowValue" value="4" />
<add key="StartBlowValue" value="4"/>
<!-- 停止吹气的判断值(配置值=服务器发送的湿度值-停止吹气值)-->
<add key="StopBlowValue" value="4" />
<add key="StopBlowValue" value="4"/>
<!--Server address-->
<!--<add key="http.server" value="http://10.85.160.25/myproject/" />-->
<!--storeType-->
<add key="store_count" value="2" />
<add key="Store_ConfigPath" value="\StoreConfig\StoreConfig.csv" />
<add key="store_count" value="2"/>
<add key="Store_ConfigPath" value="\StoreConfig\StoreConfig.csv"/>
<!--start one store config-->
<add key="Store_Position_Config" value="\StoreConfig\linePositions.csv" />
<add key="BOX_ConfigPath" value="\StoreConfig\BoxConfig.csv" />
<add key="Store_Type" value="RC_AC_PA" />
<add key="Store_CID" value="duo-store" />
<add key="Store_CID_1" value="duo-1" />
<add key="Store_CID_2" value="duo-2" />
<add key="Store_CID_1_disabled" value="1" />
<add key="Store_CID_2_disabled" value="1" />
<add key="Store_Position_Config" value="\StoreConfig\linePositions.csv"/>
<add key="BOX_ConfigPath" value="\StoreConfig\BoxConfig.csv"/>
<add key="Store_Type" value="RC_AC_PA"/>
<add key="Store_CID" value="duo-store"/>
<add key="Store_CID_1" value="duo-1"/>
<add key="Store_CID_2" value="duo-2"/>
<add key="Store_CID_1_disabled" value="1"/>
<add key="Store_CID_2_disabled" value="1"/>
<!--end one store config-->
<add key="ACBaudRate" value="115200" />
<add key="Config_Pwd" value="123456" />
<add key="ACBaudRate" value="115200"/>
<add key="Config_Pwd" value="123456"/>
<!--二维码类型列表配置,用#分割,一维码=Barcode 二维码: QR Code#Data Matrix ECC 200#Micro QR Code-->
<add key="CodeType" value="QR Code#Data Matrix ECC 200" />
<add key="CodeType" value="QR Code#Data Matrix ECC 200"/>
<!--二维码参数文件所在路径,文件名与二维码类型名一样-->
<add key="CodeParamPath" value="\CodeParam\" />
<add key="CodeParamPath" value="\CodeParam\"/>
<!--出库等待料盘拿走的时间,秒-->
<add key="OutStoreWaitSeconds" value="1" />
<add key="OutStoreWaitSeconds" value="1"/>
<!--温控器类型,0=壁挂王字壳温湿度变送器,1=妙昕温湿度记录仪-->
<add key="HumitureControllerType" value="0" />
<add key="Default_Language" value="zh-CN" />
<add key="UseBuzzer" value="0" />
<add key="HumitureControllerType" value="0"/>
<add key="Default_Language" value="zh-CN"/>
<add key="UseBuzzer" value="0"/>
<!--IO模块是否主动上传-->
<add key="AIOAutoUpload" value="0" />
<add key="CodeCount" value="3" />
<add key="Tool_P3_Offset" value="7000" />
<add key="Tool_P4_Offset" value="-2000" />
<add key="Tool_P5_Offset" value="-2000" />
<add key="Tool_P6_Offset" value="7000" />
<add key="Tool_TargetSpeed" value="20" />
<add key="Tool_TargetPosition" value="1835000" />
<add key="AIOAutoUpload" value="0"/>
<add key="CodeCount" value="3"/>
<add key="Tool_P3_Offset" value="7000"/>
<add key="Tool_P4_Offset" value="-2000"/>
<add key="Tool_P5_Offset" value="-2000"/>
<add key="Tool_P6_Offset" value="7000"/>
<add key="Tool_TargetSpeed" value="20"/>
<add key="Tool_TargetPosition" value="1835000"/>
<add key="Agv_Log_Open" value="1" />
<add key="Agv_Log_Open" value="1"/>
<!--进出轴位置-->
<add key ="InOutDefaultPosition" value ="3000"/>
<add key="InOutDefaultPosition" value="3000"/>
<!--当前料架信息-料架号-->
<add key ="CurrShelfNum" value ="-1"/>
<add key="CurrShelfNum" value="-1"/>
<!--当前料架信息-料架类型,0=空料架,1=入库料架,2=出库料架-->
<add key ="CurrShelfType" value ="-1"/>
<add key ="Code_Block_Size_List" value ="17,19"/>
<add key="CurrShelfType" value="-1"/>
<add key="Code_Block_Size_List" value="17,19"/>
</appSettings>
<log4net>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logs/duoStore.log" />
<param name="Encoding" value="UTF-8" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd" />
<file value="logs/duoStore.log"/>
<param name="Encoding" value="UTF-8"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n" />
<conversionPattern value="[%date][%t]%-5p %m%n"/>
</layout>
</appender>
<appender name="AIOBOX" type="log4net.Appender.RollingFileAppender">
<file value="logs/aio/AIOBOX.log" />
<param name="Encoding" value="UTF-8" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd" />
<file value="logs/aio/AIOBOX.log"/>
<param name="Encoding" value="UTF-8"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n" />
<conversionPattern value="[%date][%t]%-5p %m%n"/>
</layout>
</appender>
<appender name="LngResource" type="log4net.Appender.RollingFileAppender">
<file value="logs/LngResource.log" />
<param name="Encoding" value="UTF-8" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyy-MM-dd" />
<file value="logs/LngResource.log"/>
<param name="Encoding" value="UTF-8"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyy-MM-dd"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="[%date][%t]%-5p %m%n" />
<conversionPattern value="[%date][%t]%-5p %m%n"/>
</layout>
</appender>
<logger name="RollingLogFileAppender">
<level value="Info" />
<appender-ref ref="RollingLogFileAppender" />
<level value="Info"/>
<appender-ref ref="RollingLogFileAppender"/>
</logger>
<logger name="AIOBOX">
<level value="Info" />
<appender-ref ref="AIOBOX" />
<level value="Info"/>
<appender-ref ref="AIOBOX"/>
</logger>
<logger name="LngResource">
<level value="Info" />
<appender-ref ref="LngResource" />
<level value="Info"/>
<appender-ref ref="LngResource"/>
</logger>
<!--<root>
<level value="Info" />
......@@ -106,6 +106,6 @@
</root>-->
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
</configuration>
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.DUOStore</RootNamespace>
<AssemblyName>DUOStore</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......
......@@ -37,6 +37,7 @@
this.chkDebug = new System.Windows.Forms.CheckBox();
this.lblMoveInfo = new System.Windows.Forms.Label();
this.chbAutoRun = new System.Windows.Forms.CheckBox();
this.btn_releaseShelf = new System.Windows.Forms.Button();
this.btnCopyLog = new System.Windows.Forms.Button();
this.btnClearLog = new System.Windows.Forms.Button();
this.lblShelf = new System.Windows.Forms.Label();
......@@ -120,6 +121,7 @@
this.panel1.Controls.Add(this.chkDebug);
this.panel1.Controls.Add(this.lblMoveInfo);
this.panel1.Controls.Add(this.chbAutoRun);
this.panel1.Controls.Add(this.btn_releaseShelf);
this.panel1.Controls.Add(this.btnCopyLog);
this.panel1.Controls.Add(this.btnClearLog);
this.panel1.Controls.Add(this.lblShelf);
......@@ -176,6 +178,19 @@
this.chbAutoRun.UseVisualStyleBackColor = true;
this.chbAutoRun.CheckedChanged += new System.EventHandler(this.chbAutoRun_CheckedChanged);
//
// btn_releaseShelf
//
this.btn_releaseShelf.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btn_releaseShelf.BackColor = System.Drawing.Color.White;
this.btn_releaseShelf.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btn_releaseShelf.Location = new System.Drawing.Point(12, 383);
this.btn_releaseShelf.Name = "btn_releaseShelf";
this.btn_releaseShelf.Size = new System.Drawing.Size(140, 35);
this.btn_releaseShelf.TabIndex = 191;
this.btn_releaseShelf.Text = "释放料架";
this.btn_releaseShelf.UseVisualStyleBackColor = false;
this.btn_releaseShelf.Click += new System.EventHandler(this.btn_releaseShelf_Click);
//
// btnCopyLog
//
this.btnCopyLog.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
......@@ -450,7 +465,7 @@
// 中文ToolStripMenuItem
//
this.中文ToolStripMenuItem.Name = "中文ToolStripMenuItem";
this.中文ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.中文ToolStripMenuItem.Size = new System.Drawing.Size(134, 26);
this.中文ToolStripMenuItem.Tag = "not";
this.中文ToolStripMenuItem.Text = "中文";
this.中文ToolStripMenuItem.Click += new System.EventHandler(this.中文ToolStripMenuItem_Click);
......@@ -458,7 +473,7 @@
// 英语ToolStripMenuItem
//
this.英语ToolStripMenuItem.Name = "英语ToolStripMenuItem";
this.英语ToolStripMenuItem.Size = new System.Drawing.Size(180, 26);
this.英语ToolStripMenuItem.Size = new System.Drawing.Size(134, 26);
this.英语ToolStripMenuItem.Tag = "not";
this.英语ToolStripMenuItem.Text = "English";
this.英语ToolStripMenuItem.Click += new System.EventHandler(this.英语ToolStripMenuItem_Click);
......@@ -584,6 +599,7 @@
private System.Windows.Forms.ToolStripMenuItem 语言ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem 中文ToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem 英语ToolStripMenuItem;
private System.Windows.Forms.Button btn_releaseShelf;
}
}
......@@ -29,14 +29,17 @@ namespace OnlineStore.DUOStore
private System.Timers.Timer startTimer = null;
internal FrmStore()
{
CodeResourceControl.GetLanguageEvent += CodeResourceControl_GetLanguageEvent;
InitializeComponent();
startTimer = new System.Timers.Timer();
startTimer.Interval = 1000;
startTimer.Enabled = false;
startTimer.AutoReset = false;
Control.CheckForIllegalCrossThreadCalls = false;
this.Shown += FrmStore_Shown;
CodeResourceControl.GetLanguageEvent += CodeResourceControl_GetLanguageEvent;
}
private string CodeResourceControl_GetLanguageEvent()
......@@ -57,6 +60,7 @@ namespace OnlineStore.DUOStore
{
try
{
CodeResourceControl.LanguageProcess(this, this.GetType().Name);
FrmBase.GetVersion();
store = StoreManager.InitStore();
if (store == null)
......@@ -120,10 +124,10 @@ namespace OnlineStore.DUOStore
{
this.listView1.Columns.Clear();
AddHealder(crc.GetString("table_name","名称"), 90);
AddHealder(crc.GetString("table_enable","启用"), 50);
AddHealder(crc.GetString("table_enable","启用"), 60);
AddHealder(crc.GetString("table_alarm","报警"), 130);
AddHealder(crc.GetString("table_state","状态"), 110);
AddHealder(crc.GetString("table_reelinfo","料盘信息"), listView1.Size.Width - 110 - 130 - 50 - 90 - 10);
AddHealder(crc.GetString("table_state","状态"), 130);
AddHealder(crc.GetString("table_reelinfo","料盘信息"), listView1.Size.Width - 130 - 130 - 60 - 90 - 10);
//AddHealder("BOX状态", listView1.Size.Width - 100 - 80 - 80 - 100 - 100 - 100 -40- 8);
AddRow(store, false );
......@@ -775,5 +779,10 @@ namespace OnlineStore.DUOStore
ConfigAppSettings.SaveValue("Default_Language", "zh-CN");
FrmStore_Shown(this, EventArgs.Empty);
}
private void btn_releaseShelf_Click(object sender, EventArgs e)
{
StoreManager.Store.LineOut_BTN_Process(true);
}
}
}
......@@ -5,10 +5,12 @@ using OnlineStore.DUOStore;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
namespace OnlineStore.DUOStore
{
......@@ -59,7 +61,7 @@ namespace OnlineStore.DUOStore
//HttpHelper.PostOperation(path, new Operation());
//var a = DeviceLibrary.InOutParam.GetPosStoreId("4#AC3_17_3_22");
CheckConfigFile();
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
......@@ -109,6 +111,24 @@ namespace OnlineStore.DUOStore
Application.Run(new FrmStore());
}
}
private static void CheckConfigFile()
{
string configfile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
string backupfile = configfile + ".backup";
try
{
var c = new XmlDocument();
c.Load(configfile);
File.Copy(configfile, backupfile, true);
}
catch
{
if (File.Exists(backupfile))
{
File.Copy(backupfile, configfile, true);
}
}
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
LogUnhandledException(e.ExceptionObject);
......
......@@ -19,7 +19,7 @@ namespace OnlineStore.DUOStore.Properties {
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
......@@ -47,8 +47,8 @@ namespace OnlineStore.DUOStore.Properties {
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性,对
/// 使用此强类型资源类的所有资源查找执行重写
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
......
......@@ -12,7 +12,7 @@ namespace OnlineStore.DUOStore.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.5.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
......
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.DeviceLibrary</RootNamespace>
<AssemblyName>DeviceLibrary</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......
......@@ -159,16 +159,16 @@ namespace OnlineStore.DeviceLibrary
List<CodeInfo> cc = new List<CodeInfo>();
string r = "";
foreach (int codesize in Code_Block_Size_List)
//foreach (int codesize in Code_Block_Size_List)
{
//if (codeList.Count > 0)
// break;
List<CodeInfo> tlci = EyemDecode.Decoder(ref bmp, null, codesize);
List<CodeInfo> tlci = EyemDecode2.Decoder(ref bmp);
foreach (CodeInfo code in tlci)
{
LogUtil.info(" 【" + cameraName + $"】[eyemDecode blocksize:{codesize}]" + code.CodeType + "(X: " + code.X + ",Y: " + code.Y + ") " + code.CodeStr);
LogUtil.info(" 【" + cameraName + $"】[eyemDecode]" + code.CodeType + "(X: " + code.X + ",Y: " + code.Y + ") " + code.CodeStr);
string str = CodeManager.ReplaceCode(code.CodeStr);
lock (codeList)
{
......
......@@ -207,6 +207,7 @@ namespace OnlineStore.DeviceLibrary
MiddleAxis.AbsMove(MoveInfo, Config.MiddleAxis_P11, Config.MiddleAxis_P11_Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxis_P12, Config.UpDownAxis_P12_Speed);
}
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Fixture_Check, IO_VALUE.HIGH));
}
#region 正常入库处理
......@@ -245,6 +246,7 @@ namespace OnlineStore.DeviceLibrary
ComAxis.AbsMove(MoveInfo, moveP.ComPress_P1, Config.CompAxis_P1_Speed);
MiddleAxis.AbsMove(MoveInfo, moveP.Middle_P1, Config.MiddleAxis_P1_Speed);
UpdownAxis.AbsMove(MoveInfo, moveP.UpDown_P1, Config.UpDownAxis_P1_Speed);
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Fixture_Check, IO_VALUE.LOW));
}
else if (MoveInfo.IsStep(StoreMoveStep.SI_10_GoBack))
{
......@@ -460,6 +462,7 @@ namespace OnlineStore.DeviceLibrary
MiddleAxis.AbsMove(MoveInfo, Config.MiddleAxis_P11, Config.MiddleAxis_P11_Speed);
UpdownAxis.AbsMove(MoveInfo, Config.UpDownAxis_P12, Config.UpDownAxis_P12_Speed);
}
MoveInfo.WaitList.Add(WaitResultInfo.WaitIO(IO_Type.Fixture_Check, IO_VALUE.HIGH));
}
#region 批量出料,到料串
......
......@@ -650,9 +650,9 @@ namespace OnlineStore.DeviceLibrary
}
}
private void LineOut_BTN_Process()
public void LineOut_BTN_Process(bool force=false)
{
if (IOValue(IO_Type.LineOut_BTN).Equals(IO_VALUE.LOW))
if (IOValue(IO_Type.LineOut_BTN).Equals(IO_VALUE.LOW) && !force)
return;
if (IOValue(IO_Type.Line_OutCheck).Equals(IO_VALUE.HIGH))
......@@ -660,7 +660,7 @@ namespace OnlineStore.DeviceLibrary
//IOMove(IO_Type.Line_Run, IO_VALUE.HIGH, false, 4000);
LineRun("LineOut_BTN_Process", 4);
IOMove(IO_Type.Line_Stop4_Out, IO_VALUE.HIGH, false, 2000);
LogUtil.info(Name + "脚踩按钮,放行区放行");
LogUtil.info(Name + $"{(force?"界面": "脚踩")}按钮,放行区放行");
}
if (IOValue(IO_Type.Line_OutCheck).Equals(IO_VALUE.LOW)
......@@ -671,7 +671,7 @@ namespace OnlineStore.DeviceLibrary
{
LineRun("LineOut_BTN_Process", 3);
IOMove(IO_Type.Line_Stop2_Work, IO_VALUE.HIGH, false, 2000);
LogUtil.info(Name + "脚踩按钮,工作区放行");
LogUtil.info(Name + $"{(force?"界面": "脚踩")}按钮,工作区放行");
}
bool box1stay = BoxMap[1].runStatus == StoreRunStatus.Runing || BoxMap[1].runStatus == StoreRunStatus.Wait;
bool box2stay = BoxMap[2].runStatus == StoreRunStatus.Runing || BoxMap[2].runStatus == StoreRunStatus.Wait;
......@@ -680,7 +680,7 @@ namespace OnlineStore.DeviceLibrary
{
//OutstoreEndSendShelf = true;
LO_31_BatchAxisToP1();
LogUtil.info(Name + "脚踩按钮,出库强制放行");
LogUtil.info(Name + $"{(force ? "界面" : "脚踩")}按钮,出库强制放行");
}
}
......
......@@ -9,7 +9,7 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OnlineStore.LoadCSVLibrary</RootNamespace>
<AssemblyName>LoadCSVLibrary</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<TargetFrameworkProfile />
</PropertyGroup>
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!