| @@ -1,19 +1,99 @@ | |||||
| using System; | |||||
| using MySql.Data.MySqlClient; | |||||
| using System; | |||||
| using System.Collections.Generic; | using System.Collections.Generic; | ||||
| using System.Data; | |||||
| using System.Text; | using System.Text; | ||||
| using System.Windows.Forms; | |||||
| namespace StuMgmLib.MyNameSpace | namespace StuMgmLib.MyNameSpace | ||||
| { | { | ||||
| public class DataAnalyze | public class DataAnalyze | ||||
| { | { | ||||
| public void Analyze(byte[] data) | |||||
| const string conStr = "data source=localhost; initial catalog=xinje; user id=root; pwd=980505"; | |||||
| public static void GetFunc(byte[] dataRecv) | |||||
| { | { | ||||
| short account = 01941; | |||||
| string psw = "980505"; | |||||
| bool res = LoginVerify(account, psw); | |||||
| res = !res; | |||||
| // 对buf数据处理,判断身份验证还是数据库操作 | |||||
| //switch () | |||||
| //{ | |||||
| // case :break; | |||||
| // case :break; | |||||
| // case :break; | |||||
| // default:break; | |||||
| //} | |||||
| } | |||||
| public static bool LoginVerify(short account, string psw) | |||||
| { | |||||
| string qStu = "select * from user where account = " + account + " and password = '" + psw + "'"; | |||||
| MySqlConnection con = new MySqlConnection(conStr); | |||||
| try | |||||
| { | |||||
| con.Open(); | |||||
| MySqlCommand mCmd = new MySqlCommand(qStu, con); | |||||
| MySqlDataReader mReader = mCmd.ExecuteReader(); | |||||
| if (mReader.HasRows) | |||||
| return true; | |||||
| else | |||||
| return false; | |||||
| //DataTable dt = new DataTable(); | |||||
| //dt.Load(mReader); | |||||
| //Random r = new Random(); | |||||
| } | |||||
| catch (MySqlException mySqlEx) | |||||
| { | |||||
| MessageBox.Show(mySqlEx.Message); | |||||
| return false; | |||||
| } | |||||
| finally | |||||
| { | |||||
| con.Close(); | |||||
| } | |||||
| } | } | ||||
| private void mysqlUse() | |||||
| private static DataTable mysqlUse() | |||||
| { | { | ||||
| // mysql Query | // mysql Query | ||||
| string key = ""; | |||||
| string para = ""; | |||||
| string qStu = "select * from staffs where "; // 验证登录信息 | |||||
| switch (key) | |||||
| { | |||||
| case "Id": | |||||
| qStu += " Id =" + Convert.ToString(para); | |||||
| break; | |||||
| case "All": | |||||
| qStu = "select * from staffs "; break; | |||||
| default: | |||||
| qStu += key + "= '" + Convert.ToString(para) + "'"; | |||||
| break; | |||||
| } | |||||
| MySqlConnection con = new MySqlConnection(conStr); | |||||
| try | |||||
| { | |||||
| con.Open(); | |||||
| MySqlCommand mCmd = new MySqlCommand(qStu, con); | |||||
| MySqlDataReader mReader = mCmd.ExecuteReader(); | |||||
| DataTable dt = new DataTable(); | |||||
| dt.Load(mReader); | |||||
| return dt; | |||||
| } | |||||
| catch (MySqlException mySqlEx) | |||||
| { | |||||
| MessageBox.Show(mySqlEx.Message); | |||||
| return null; | |||||
| } | |||||
| finally | |||||
| { | |||||
| con.Close(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | |||||
| } | |||||
| @@ -0,0 +1,118 @@ | |||||
| using System; | |||||
| using System.Collections.Generic; | |||||
| using System.IO; | |||||
| //using System.Linq; | |||||
| using System.Runtime.Serialization.Formatters.Binary; | |||||
| using System.Text; | |||||
| //using System.Threading.Tasks; | |||||
| namespace StuMgmLib | |||||
| { | |||||
| #region 题目信息 | |||||
| [Serializable] | |||||
| public class CourseInfo | |||||
| { | |||||
| public short Id; | |||||
| public short Pid; | |||||
| public int Time; | |||||
| public string Name; | |||||
| public string Content; | |||||
| } | |||||
| #endregion | |||||
| #region 学生题目信息一览 | |||||
| public enum CourseStatusEnum | |||||
| { | |||||
| undo, // 未开始 | |||||
| doing, // 进行中 | |||||
| waiting, // 等待验收 | |||||
| failed, // 验收失败 | |||||
| preSharing, // 准备分享 | |||||
| pass // 验收通过 | |||||
| } | |||||
| [Serializable] | |||||
| public class CourseStatus | |||||
| { | |||||
| public short CourseId; | |||||
| public CourseStatusEnum Status; | |||||
| } | |||||
| [Serializable] | |||||
| public class UserInfo | |||||
| { | |||||
| public short JobId; | |||||
| public string Name; | |||||
| public List<CourseStatus> CourseStatus; | |||||
| } | |||||
| #endregion | |||||
| #region 学生单题详细信息 | |||||
| public class HistoryInfo | |||||
| { | |||||
| DateTime Time; | |||||
| string Describe; | |||||
| } | |||||
| public class DetailInfo | |||||
| { | |||||
| public short CourseId; | |||||
| public short JobId; | |||||
| List<HistoryInfo> Describes; | |||||
| } | |||||
| #endregion | |||||
| class Server | |||||
| { | |||||
| //List<CourseInfo> GetCourseInfo(); | |||||
| //UserInfo GetUserInfo(short jobId); | |||||
| //DetailInfo GetDetailInfo(short jobId, short courseId); | |||||
| public byte[] GetUser(short jobId) | |||||
| { | |||||
| UserInfo info = new UserInfo(); | |||||
| info.JobId = 111; | |||||
| info.Name = "aaaa"; | |||||
| info.CourseStatus = new List<CourseStatus>(); | |||||
| CourseStatus aa = new CourseStatus(); | |||||
| aa.CourseId = 222; | |||||
| aa.Status = CourseStatusEnum.undo; // 做题状态 | |||||
| info.CourseStatus.Add(aa); | |||||
| MemoryStream ms = new MemoryStream(); | |||||
| BinaryFormatter iFormatter = new BinaryFormatter(); | |||||
| iFormatter.Serialize(ms, info); | |||||
| byte[] buff = ms.GetBuffer(); | |||||
| return buff; | |||||
| } | |||||
| public UserInfo Parse(byte[] bt) | |||||
| { | |||||
| MemoryStream ms = new MemoryStream(bt); | |||||
| BinaryFormatter iFormatter = new BinaryFormatter(); | |||||
| UserInfo obj = (UserInfo)iFormatter.Deserialize(ms); | |||||
| return obj; | |||||
| } | |||||
| } | |||||
| class StudentInfo | |||||
| { | |||||
| //List<CourseInfo> GetCourseInfo(); | |||||
| //UserInfo GetUserInfo(short jobId); | |||||
| //DetailInfo GetDetailInfo(short jobId, short courseId); | |||||
| } | |||||
| class Program | |||||
| { | |||||
| //static void Main(string[] args) | |||||
| //{ | |||||
| // Server s = new Server(); | |||||
| // byte[] buf = s.GetUser(0); | |||||
| // UserInfo aa = s.Parse(buf); | |||||
| //} | |||||
| } | |||||
| } | |||||
| @@ -5,21 +5,12 @@ using System.Net.Sockets; | |||||
| namespace StuMgmLib.MyNameSpace | namespace StuMgmLib.MyNameSpace | ||||
| { | { | ||||
| public class TcpConn | public class TcpConn | ||||
| { | { | ||||
| private IPEndPoint IPP = null; | private IPEndPoint IPP = null; | ||||
| private Socket socket = null; | private Socket socket = null; | ||||
| private Socket socketClient = null; | private Socket socketClient = null; | ||||
| //private Thread tAccept = null; | |||||
| #region 连接状态字段 | |||||
| private bool my_connect = false; | |||||
| public bool Connect | |||||
| { | |||||
| get { return my_connect; } | |||||
| set { my_connect = value; } | |||||
| } | |||||
| #endregion | |||||
| private bool my_SocketExist = false; | private bool my_SocketExist = false; | ||||
| /// <summary> | /// <summary> | ||||
| @@ -72,13 +63,14 @@ namespace StuMgmLib.MyNameSpace | |||||
| #region 接收数据 | #region 接收数据 | ||||
| public string acpMsg() | public string acpMsg() | ||||
| { | { | ||||
| byte[] arrDataRecv = new byte[1024]; // 定义接收数组 | |||||
| byte[] arrDataRecv = new byte[4096]; // 定义接收数组 | |||||
| string reEdPoint = ""; | string reEdPoint = ""; | ||||
| try | try | ||||
| { | { | ||||
| reEdPoint = socketClient.RemoteEndPoint.ToString(); | reEdPoint = socketClient.RemoteEndPoint.ToString(); | ||||
| socketClient.ReceiveTimeout = recvTimeOut; | socketClient.ReceiveTimeout = recvTimeOut; | ||||
| int len = socketClient.Receive(arrDataRecv); | int len = socketClient.Receive(arrDataRecv); | ||||
| DataAnalyze.GetFunc(arrDataRecv); // 解析 | |||||
| List<byte> listDataRecv = new List<byte> { }; // 定义截取列表 | List<byte> listDataRecv = new List<byte> { }; // 定义截取列表 | ||||
| return reEdPoint + " " + len.ToString() + " 断开连接 \n"; | return reEdPoint + " " + len.ToString() + " 断开连接 \n"; | ||||
| } | } | ||||
| @@ -11,6 +11,7 @@ | |||||
| <AssemblyName>StuMgmLib</AssemblyName> | <AssemblyName>StuMgmLib</AssemblyName> | ||||
| <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> | <TargetFrameworkVersion>v2.0</TargetFrameworkVersion> | ||||
| <FileAlignment>512</FileAlignment> | <FileAlignment>512</FileAlignment> | ||||
| <TargetFrameworkProfile /> | |||||
| </PropertyGroup> | </PropertyGroup> | ||||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | ||||
| <DebugSymbols>true</DebugSymbols> | <DebugSymbols>true</DebugSymbols> | ||||
| @@ -20,6 +21,7 @@ | |||||
| <DefineConstants>DEBUG;TRACE</DefineConstants> | <DefineConstants>DEBUG;TRACE</DefineConstants> | ||||
| <ErrorReport>prompt</ErrorReport> | <ErrorReport>prompt</ErrorReport> | ||||
| <WarningLevel>4</WarningLevel> | <WarningLevel>4</WarningLevel> | ||||
| <Prefer32Bit>false</Prefer32Bit> | |||||
| </PropertyGroup> | </PropertyGroup> | ||||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | ||||
| <DebugType>pdbonly</DebugType> | <DebugType>pdbonly</DebugType> | ||||
| @@ -28,14 +30,21 @@ | |||||
| <DefineConstants>TRACE</DefineConstants> | <DefineConstants>TRACE</DefineConstants> | ||||
| <ErrorReport>prompt</ErrorReport> | <ErrorReport>prompt</ErrorReport> | ||||
| <WarningLevel>4</WarningLevel> | <WarningLevel>4</WarningLevel> | ||||
| <Prefer32Bit>false</Prefer32Bit> | |||||
| </PropertyGroup> | </PropertyGroup> | ||||
| <ItemGroup> | <ItemGroup> | ||||
| <Reference Include="MySql.Data, Version=8.0.21.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL"> | |||||
| <SpecificVersion>False</SpecificVersion> | |||||
| <HintPath>..\..\..\MySql.Data.dll</HintPath> | |||||
| </Reference> | |||||
| <Reference Include="System" /> | <Reference Include="System" /> | ||||
| <Reference Include="System.Data" /> | <Reference Include="System.Data" /> | ||||
| <Reference Include="System.Windows.Forms" /> | |||||
| <Reference Include="System.Xml" /> | <Reference Include="System.Xml" /> | ||||
| </ItemGroup> | </ItemGroup> | ||||
| <ItemGroup> | <ItemGroup> | ||||
| <Compile Include="MyNameSpace\DataAnalyze.cs" /> | <Compile Include="MyNameSpace\DataAnalyze.cs" /> | ||||
| <Compile Include="MyNameSpace\StuMgmSer.cs" /> | |||||
| <Compile Include="MyNameSpace\TcpConn.cs" /> | <Compile Include="MyNameSpace\TcpConn.cs" /> | ||||
| <Compile Include="Properties\AssemblyInfo.cs" /> | <Compile Include="Properties\AssemblyInfo.cs" /> | ||||
| </ItemGroup> | </ItemGroup> | ||||
| @@ -30,7 +30,7 @@ | |||||
| { | { | ||||
| this.components = new System.ComponentModel.Container(); | this.components = new System.ComponentModel.Container(); | ||||
| this.tlpAll = new System.Windows.Forms.TableLayoutPanel(); | this.tlpAll = new System.Windows.Forms.TableLayoutPanel(); | ||||
| this.richTextBox1 = new System.Windows.Forms.RichTextBox(); | |||||
| this.rtxHistory = new System.Windows.Forms.RichTextBox(); | |||||
| this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); | this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); | ||||
| this.txtPort = new System.Windows.Forms.TextBox(); | this.txtPort = new System.Windows.Forms.TextBox(); | ||||
| this.lblSwiSta = new System.Windows.Forms.Label(); | this.lblSwiSta = new System.Windows.Forms.Label(); | ||||
| @@ -47,7 +47,7 @@ | |||||
| this.tlpAll.ColumnCount = 2; | this.tlpAll.ColumnCount = 2; | ||||
| this.tlpAll.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 27.25581F)); | this.tlpAll.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 27.25581F)); | ||||
| this.tlpAll.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 72.74419F)); | this.tlpAll.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 72.74419F)); | ||||
| this.tlpAll.Controls.Add(this.richTextBox1, 0, 0); | |||||
| this.tlpAll.Controls.Add(this.rtxHistory, 0, 0); | |||||
| this.tlpAll.Controls.Add(this.tableLayoutPanel1, 0, 0); | this.tlpAll.Controls.Add(this.tableLayoutPanel1, 0, 0); | ||||
| this.tlpAll.Dock = System.Windows.Forms.DockStyle.Fill; | this.tlpAll.Dock = System.Windows.Forms.DockStyle.Fill; | ||||
| this.tlpAll.Location = new System.Drawing.Point(0, 24); | this.tlpAll.Location = new System.Drawing.Point(0, 24); | ||||
| @@ -58,15 +58,15 @@ | |||||
| this.tlpAll.Size = new System.Drawing.Size(1075, 413); | this.tlpAll.Size = new System.Drawing.Size(1075, 413); | ||||
| this.tlpAll.TabIndex = 0; | this.tlpAll.TabIndex = 0; | ||||
| // | // | ||||
| // richTextBox1 | |||||
| // rtxHistory | |||||
| // | // | ||||
| this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; | |||||
| this.richTextBox1.Font = new System.Drawing.Font("Calibri", 10.8F); | |||||
| this.richTextBox1.Location = new System.Drawing.Point(295, 3); | |||||
| this.richTextBox1.Name = "richTextBox1"; | |||||
| this.richTextBox1.Size = new System.Drawing.Size(777, 407); | |||||
| this.richTextBox1.TabIndex = 2; | |||||
| this.richTextBox1.Text = ""; | |||||
| this.rtxHistory.Dock = System.Windows.Forms.DockStyle.Fill; | |||||
| this.rtxHistory.Font = new System.Drawing.Font("Calibri", 10.8F); | |||||
| this.rtxHistory.Location = new System.Drawing.Point(295, 3); | |||||
| this.rtxHistory.Name = "rtxHistory"; | |||||
| this.rtxHistory.Size = new System.Drawing.Size(777, 407); | |||||
| this.rtxHistory.TabIndex = 2; | |||||
| this.rtxHistory.Text = ""; | |||||
| // | // | ||||
| // tableLayoutPanel1 | // tableLayoutPanel1 | ||||
| // | // | ||||
| @@ -175,7 +175,7 @@ | |||||
| private System.Windows.Forms.Label lblPort; | private System.Windows.Forms.Label lblPort; | ||||
| private System.Windows.Forms.TextBox txtPort; | private System.Windows.Forms.TextBox txtPort; | ||||
| private System.Windows.Forms.Timer tmr; | private System.Windows.Forms.Timer tmr; | ||||
| private System.Windows.Forms.RichTextBox richTextBox1; | |||||
| private System.Windows.Forms.RichTextBox rtxHistory; | |||||
| } | } | ||||
| } | } | ||||
| @@ -24,14 +24,14 @@ namespace StuMgmServer | |||||
| /// </summary> | /// </summary> | ||||
| private void setText(string text) | private void setText(string text) | ||||
| { | { | ||||
| if (richTextBox1.InvokeRequired) | |||||
| if (rtxHistory.InvokeRequired) | |||||
| { | { | ||||
| SetTextCallback method = new SetTextCallback(setText); | SetTextCallback method = new SetTextCallback(setText); | ||||
| Invoke(method, new object[] { text }); | Invoke(method, new object[] { text }); | ||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| richTextBox1.Text += text; | |||||
| rtxHistory.Text = text + rtxHistory.Text; | |||||
| } | } | ||||
| } | } | ||||
| @@ -112,15 +112,15 @@ | |||||
| <value>2.0</value> | <value>2.0</value> | ||||
| </resheader> | </resheader> | ||||
| <resheader name="reader"> | <resheader name="reader"> | ||||
| <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |||||
| <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |||||
| </resheader> | </resheader> | ||||
| <resheader name="writer"> | <resheader name="writer"> | ||||
| <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |||||
| <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | |||||
| </resheader> | </resheader> | ||||
| <metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |||||
| <metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |||||
| <value>17, 17</value> | <value>17, 17</value> | ||||
| </metadata> | </metadata> | ||||
| <metadata name="tmr.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |||||
| <metadata name="tmr.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | |||||
| <value>159, 17</value> | <value>159, 17</value> | ||||
| </metadata> | </metadata> | ||||
| </root> | </root> | ||||
| @@ -6,7 +6,7 @@ using System.Runtime.Serialization.Formatters.Binary; | |||||
| using System.Text; | using System.Text; | ||||
| //using System.Threading.Tasks; | //using System.Threading.Tasks; | ||||
| namespace ConsoleApplication1 | |||||
| namespace StuMgmLib | |||||
| { | { | ||||
| #region 题目信息 | #region 题目信息 | ||||
| @@ -64,9 +64,9 @@ namespace ConsoleApplication1 | |||||
| class Server | class Server | ||||
| { | { | ||||
| //List<CourseInfo> GetCourseInfo(); | |||||
| //UserInfo GetUserInfo(short jobId); | |||||
| //DetailInfo GetDetailInfo(short jobId, short courseId); | |||||
| List<CourseInfo> GetCourseInfo(); | |||||
| UserInfo GetUserInfo(short jobId); | |||||
| DetailInfo GetDetailInfo(short jobId, short courseId); | |||||
| public byte[] GetUser(short jobId) | public byte[] GetUser(short jobId) | ||||
| { | { | ||||
| @@ -95,12 +95,8 @@ namespace ConsoleApplication1 | |||||
| UserInfo obj = (UserInfo)iFormatter.Deserialize(ms); | UserInfo obj = (UserInfo)iFormatter.Deserialize(ms); | ||||
| return obj; | return obj; | ||||
| } | } | ||||
| } | } | ||||
| class StudentInfo | class StudentInfo | ||||
| { | { | ||||
| //List<CourseInfo> GetCourseInfo(); | //List<CourseInfo> GetCourseInfo(); | ||||
| @@ -111,11 +107,11 @@ namespace ConsoleApplication1 | |||||
| class Program | class Program | ||||
| { | { | ||||
| //static void Main(string[] args) | |||||
| //{ | |||||
| // Server s = new Server(); | |||||
| // byte[] buf = s.GetUser(0); | |||||
| // UserInfo aa = s.Prase(buf); | |||||
| //} | |||||
| static void Main(string[] args) | |||||
| { | |||||
| Server s = new Server(); | |||||
| byte[] buf = s.GetUser(0); | |||||
| UserInfo aa = s.Prase(buf); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -22,6 +22,7 @@ | |||||
| <DefineConstants>DEBUG;TRACE</DefineConstants> | <DefineConstants>DEBUG;TRACE</DefineConstants> | ||||
| <ErrorReport>prompt</ErrorReport> | <ErrorReport>prompt</ErrorReport> | ||||
| <WarningLevel>4</WarningLevel> | <WarningLevel>4</WarningLevel> | ||||
| <Prefer32Bit>false</Prefer32Bit> | |||||
| </PropertyGroup> | </PropertyGroup> | ||||
| <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | ||||
| <PlatformTarget>AnyCPU</PlatformTarget> | <PlatformTarget>AnyCPU</PlatformTarget> | ||||
| @@ -31,6 +32,7 @@ | |||||
| <DefineConstants>TRACE</DefineConstants> | <DefineConstants>TRACE</DefineConstants> | ||||
| <ErrorReport>prompt</ErrorReport> | <ErrorReport>prompt</ErrorReport> | ||||
| <WarningLevel>4</WarningLevel> | <WarningLevel>4</WarningLevel> | ||||
| <Prefer32Bit>false</Prefer32Bit> | |||||
| </PropertyGroup> | </PropertyGroup> | ||||
| <ItemGroup> | <ItemGroup> | ||||
| <Reference Include="System" /> | <Reference Include="System" /> | ||||
| @@ -49,7 +51,6 @@ | |||||
| </Compile> | </Compile> | ||||
| <Compile Include="Program.cs" /> | <Compile Include="Program.cs" /> | ||||
| <Compile Include="Properties\AssemblyInfo.cs" /> | <Compile Include="Properties\AssemblyInfo.cs" /> | ||||
| <Compile Include="StuMgmSer.cs" /> | |||||
| <EmbeddedResource Include="Properties\Resources.resx"> | <EmbeddedResource Include="Properties\Resources.resx"> | ||||
| <Generator>ResXFileCodeGenerator</Generator> | <Generator>ResXFileCodeGenerator</Generator> | ||||
| <LastGenOutput>Resources.Designer.cs</LastGenOutput> | <LastGenOutput>Resources.Designer.cs</LastGenOutput> | ||||