提交 f87861d9 编写于 作者: cdy816's avatar cdy816

调整目录结构

上级 2eda557a
......@@ -21,6 +21,7 @@ bld/
[Bb]in/
[Oo]bj/
[Ll]og/
[Oo]utput/
# Visual Studio 2015 cache/options directory
.vs/
......
......@@ -16,4 +16,13 @@
<ProjectReference Include="..\Cdy.Tag.Common\Cdy.Tag.Common.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="Config\Compress.cfg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="Config\DataFileSerise.cfg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
<?xml version="1.0" encoding="utf-8" ?>
<Compresses>
<CompressItem Name="NoneCompressUnit" MainClass="Cdy.Tag.NoneCompressUnit" File="DBRuntime.dll" />
<CompressItem Name="LosslessCompressUnit" MainClass="Cdy.Tag.LosslessCompressUnit" File="DBRuntime.dll" />
<CompressItem Name="DeadAreaCompressUnit" MainClass="Cdy.Tag.DeadAreaCompressUnit" File="DBRuntime.dll" />
<CompressItem Name="SlopeCompressUnit" MainClass="Cdy.Tag.SlopeCompressUnit" File="DBRuntime.dll" />
</Compresses>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<FileSerises>
<Serise Name="LocalFileSeriser" MainClass="Cdy.Tag.LocalFileSeriser" File="DBRuntime.dll" />
</FileSerises>
\ No newline at end of file
......@@ -8,7 +8,9 @@
//==============================================================
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using System.Xml.Linq;
namespace Cdy.Tag
{
......@@ -36,13 +38,6 @@ namespace Cdy.Tag
#endregion ...Events...
#region ... Constructor...
/// <summary>
///
/// </summary>
public CompressUnitManager()
{
LoadDefaultUnit();
}
#endregion ...Constructor...
......@@ -66,7 +61,7 @@ namespace Cdy.Tag
///
/// </summary>
/// <param name="item"></param>
public void Registor(CompressUnitbase item)
private void Registor(CompressUnitbase item)
{
if(!mCompressUnit.ContainsKey(item.TypeCode))
{
......@@ -77,11 +72,45 @@ namespace Cdy.Tag
/// <summary>
///
/// </summary>
private void LoadDefaultUnit()
public void Init()
{
Registor(new NoneCompressUnit());
string cfgpath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(this.GetType().Assembly.Location), "Config", "Compress.cfg");
if (System.IO.File.Exists(cfgpath))
{
XElement xx = XElement.Load(cfgpath);
foreach (var vv in xx.Elements())
{
try
{
string dll = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(this.GetType().Assembly.Location), vv.Attribute("File").Value);
string main = vv.Attribute("MainClass").Value;
if (System.IO.File.Exists(dll))
{
var driver = Assembly.LoadFrom(dll).CreateInstance(main) as CompressUnitbase;
Registor(driver);
}
else
{
LoggerService.Service.Warn("CompressUnitManager", dll + " is not exist.");
}
}
catch (Exception ex)
{
LoggerService.Service.Erro("DriverManager", ex.StackTrace);
}
}
}
}
///// <summary>
/////
///// </summary>
//private void LoadDefaultUnit()
//{
// Registor(new NoneCompressUnit());
//}
#endregion ...Methods...
#region ... Interfaces ...
......
......@@ -8,7 +8,9 @@
//==============================================================
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Text;
using System.Xml.Linq;
namespace Cdy.Tag
{
......@@ -44,7 +46,7 @@ namespace Cdy.Tag
/// </summary>
public DataFileSeriserManager()
{
Init();
//Init();
}
#endregion ...Constructor...
......@@ -55,13 +57,47 @@ namespace Cdy.Tag
#region ... Methods ...
///// <summary>
/////
///// </summary>
//private void Init()
//{
// LocalFileSeriser s = new LocalFileSeriser();
// Registor(s.Name, s);
//}
/// <summary>
///
/// </summary>
private void Init()
public void Init()
{
LocalFileSeriser s = new LocalFileSeriser();
Registor(s.Name, s);
string cfgpath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(this.GetType().Assembly.Location), "Config", "DataFileSerise.cfg");
if (System.IO.File.Exists(cfgpath))
{
XElement xx = XElement.Load(cfgpath);
foreach (var vv in xx.Elements())
{
try
{
string dll = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(this.GetType().Assembly.Location), vv.Attribute("File").Value);
string main = vv.Attribute("MainClass").Value;
if (System.IO.File.Exists(dll))
{
var driver = Assembly.LoadFrom(dll).CreateInstance(main) as DataFileSeriserbase;
Registe(driver.Name,driver);
}
else
{
LoggerService.Service.Warn("CompressUnitManager", dll + " is not exist.");
}
}
catch (Exception ex)
{
LoggerService.Service.Erro("DriverManager", ex.StackTrace);
}
}
}
}
/// <summary>
......@@ -69,7 +105,7 @@ namespace Cdy.Tag
/// </summary>
/// <param name="name"></param>
/// <param name="datafile"></param>
public void Registor(string name,DataFileSeriserbase datafile)
private void Registe(string name, DataFileSeriserbase datafile)
{
if (!mDataFiles.ContainsKey(name))
{
......@@ -89,7 +125,7 @@ namespace Cdy.Tag
public DataFileSeriserbase GetSeriser(string name)
{
if(mDataFiles.ContainsKey(name))
if (mDataFiles.ContainsKey(name))
{
return mDataFiles[name];
}
......
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Cdy.Tag.Common\Cdy.Tag.Common.csproj" />
<ProjectReference Include="..\Cdy.Tag\Cdy.Tag.csproj" />
</ItemGroup>
</Project>
......@@ -25,6 +25,13 @@ namespace Cdy.Tag
private string mDatabaseName;
/// <summary>
/// 数据文件扩展名
/// </summary>
public const string DataFileExtends = ".dbd";
public const int FileHeadSize = 72;
#endregion ...Variables...
#region ... Events ...
......@@ -32,7 +39,7 @@ namespace Cdy.Tag
#endregion ...Events...
#region ... Constructor...
/// <summary>
///
/// </summary>
......@@ -103,7 +110,7 @@ namespace Cdy.Tag
{
foreach (var vv in dir.GetFiles())
{
if (vv.Extension == SeriseFileItem.DataFileExtends)
if (vv.Extension == DataFileExtends)
{
ParseFileName(vv);
}
......@@ -121,7 +128,7 @@ namespace Cdy.Tag
/// <param name="fileName"></param>
private void ParseFileName(System.IO.FileInfo file)
{
string sname = file.Name.Replace(SeriseFileItem.DataFileExtends,"");
string sname = file.Name.Replace(DataFileExtends, "");
string stime = sname.Substring(sname.Length - 12, 12);
int yy=0, mm=0, dd=0;
......
......@@ -30,6 +30,8 @@ namespace Cdy.Tag
private List<int> mOrderSecondOffset = new List<int>();
#endregion ...Variables...
#region ... Events ...
......@@ -124,7 +126,7 @@ namespace Cdy.Tag
using (var ss = DataFileSeriserManager.manager.GetDefaultFileSersie())
{
ss.OpenFile(mDataFile);
long offset = SeriseFileItem.FileHeadSize;
long offset = DataFileManager.FileHeadSize;
DateTime time;
do
{
......
......@@ -5,6 +5,28 @@
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Compile Remove="%2a%2a\**" />
<EmbeddedResource Remove="%2a%2a\**" />
<None Remove="%2a%2a\**" />
</ItemGroup>
<ItemGroup>
<Compile Remove="%2a%2a/%2a.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Remove="%2a%2a/%2a.resx" />
</ItemGroup>
<ItemGroup>
<None Remove="%2a%2a/%2a" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DataRunner\DBRuntime.csproj" />
<ProjectReference Include="..\SimDriver\SimDriver.csproj" />
......
......@@ -31,9 +31,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cdy.Tag.Driver", "..\Cdy.Ta
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SimDriver", "..\SimDriver\SimDriver.csproj", "{FC8C1E8A-A510-4EDE-9D1B-479EACAAB207}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HisDataService", "..\HisDataService\HisDataService.csproj", "{07D6078C-1B44-4AD2-A042-AA679420E09B}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HisDataService", "..\HisDataService\HisDataService.csproj", "{07D6078C-1B44-4AD2-A042-AA679420E09B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DBDevelopClientApi", "..\DBDevelopClientApi\DBDevelopClientApi.csproj", "{8A29E2E6-D7B9-4862-965B-282C4824527B}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBDevelopClientApi", "..\DBDevelopClientApi\DBDevelopClientApi.csproj", "{8A29E2E6-D7B9-4862-965B-282C4824527B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DBHisData", "..\DBHisData\DBHisData.csproj", "{E347F2F3-FF6A-46EA-B6A3-31334F626EF6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HisDataTools", "..\HisDataTools\HisDataTools.csproj", "{4EDEE8A2-D89D-4040-B786-5374C65E8074}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
......@@ -93,6 +97,14 @@ Global
{8A29E2E6-D7B9-4862-965B-282C4824527B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A29E2E6-D7B9-4862-965B-282C4824527B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A29E2E6-D7B9-4862-965B-282C4824527B}.Release|Any CPU.Build.0 = Release|Any CPU
{E347F2F3-FF6A-46EA-B6A3-31334F626EF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E347F2F3-FF6A-46EA-B6A3-31334F626EF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E347F2F3-FF6A-46EA-B6A3-31334F626EF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E347F2F3-FF6A-46EA-B6A3-31334F626EF6}.Release|Any CPU.Build.0 = Release|Any CPU
{4EDEE8A2-D89D-4040-B786-5374C65E8074}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4EDEE8A2-D89D-4040-B786-5374C65E8074}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4EDEE8A2-D89D-4040-B786-5374C65E8074}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4EDEE8A2-D89D-4040-B786-5374C65E8074}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......@@ -108,6 +120,8 @@ Global
{FC8C1E8A-A510-4EDE-9D1B-479EACAAB207} = {D2FFF62D-75F6-4578-B721-D72CF9A665C7}
{07D6078C-1B44-4AD2-A042-AA679420E09B} = {D2FFF62D-75F6-4578-B721-D72CF9A665C7}
{8A29E2E6-D7B9-4862-965B-282C4824527B} = {A9815173-54F6-4F9B-A01A-C388672C8C81}
{E347F2F3-FF6A-46EA-B6A3-31334F626EF6} = {D2FFF62D-75F6-4578-B721-D72CF9A665C7}
{4EDEE8A2-D89D-4040-B786-5374C65E8074} = {D2FFF62D-75F6-4578-B721-D72CF9A665C7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {577CCEC3-4CDB-458A-B93D-F8579C2C3D8F}
......
......@@ -16,6 +16,7 @@
<ProjectReference Include="..\Cdy.Tag.Common\Cdy.Tag.Common.csproj" />
<ProjectReference Include="..\Cdy.Tag.Driver\Cdy.Tag.Driver.csproj" />
<ProjectReference Include="..\Cdy.Tag\Cdy.Tag.csproj" />
<ProjectReference Include="..\DBHisData\DBHisData.csproj" />
</ItemGroup>
<ItemGroup>
......
......@@ -133,6 +133,7 @@ namespace Cdy.Tag
#region ... Methods ...
/// <summary>
/// 选择历史记录路径
/// </summary>
......@@ -161,6 +162,9 @@ namespace Cdy.Tag
/// </summary>
private void Init()
{
DataFileSeriserManager.manager.Init();
CompressUnitManager.Manager.Init();
var his = ServiceLocator.Locator.Resolve<IHisEngine>();
var histag = his.ListAllTags().OrderBy(e => e.Id);
......
......@@ -37,6 +37,20 @@
"runtime": {
"bin/placeholder/Cdy.Tag.Driver.dll": {}
}
},
"DBHisData/1.0.0": {
"type": "project",
"framework": ".NETStandard,Version=v2.1",
"dependencies": {
"Cdy.Tag": "1.0.0",
"Cdy.Tag.Common": "1.0.0"
},
"compile": {
"bin/placeholder/DBHisData.dll": {}
},
"runtime": {
"bin/placeholder/DBHisData.dll": {}
}
}
}
},
......@@ -55,13 +69,19 @@
"type": "project",
"path": "../Cdy.Tag.Driver/Cdy.Tag.Driver.csproj",
"msbuildProject": "../Cdy.Tag.Driver/Cdy.Tag.Driver.csproj"
},
"DBHisData/1.0.0": {
"type": "project",
"path": "../DBHisData/DBHisData.csproj",
"msbuildProject": "../DBHisData/DBHisData.csproj"
}
},
"projectFileDependencyGroups": {
".NETCoreApp,Version=v3.1": [
"Cdy.Tag >= 1.0.0",
"Cdy.Tag.Common >= 1.0.0",
"Cdy.Tag.Driver >= 1.0.0"
"Cdy.Tag.Driver >= 1.0.0",
"DBHisData >= 1.0.0"
]
},
"packageFolders": {
......@@ -102,6 +122,9 @@
},
"D:\\Project\\Galaxy\\Cdy.Tag\\Cdy.Tag.csproj": {
"projectPath": "D:\\Project\\Galaxy\\Cdy.Tag\\Cdy.Tag.csproj"
},
"D:\\Project\\Galaxy\\DBHisData\\DBHisData.csproj": {
"projectPath": "D:\\Project\\Galaxy\\DBHisData\\DBHisData.csproj"
}
}
}
......
......@@ -6,6 +6,8 @@
<UseWPF>true</UseWPF>
<AssemblyName>DBInStudio</AssemblyName>
<SignAssembly>false</SignAssembly>
<Authors>Chongdaoyang</Authors>
<Description>数据库管理工具</Description>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
......
<Application x:Class="HisDataTools.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:HisDataTools"
StartupUri="MainWindow.xaml">
<Application.Resources>
</Application.Resources>
</Application>
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
namespace HisDataTools
{
/// <summary>
/// Interaction logic for App.xaml
/// </summary>
public partial class App : Application
{
public App()
{
HisDataManager.Manager.Init();
}
}
}
//==============================================================
// Copyright (C) 2020 Inc. All rights reserved.
//
//==============================================================
// Create by 种道洋 at 2020/3/17 17:06:11.
// Version 1.0
// 种道洋
//==============================================================
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Interop;
using System.Windows.Media.Imaging;
namespace HisDataTools
{
/// <summary>
///
/// </summary>
public class CustomWindowBase : Window
{
#region ... Variables ...
[DllImport("user32.dll")]
static extern int GetWindowLong(IntPtr hwnd, int index);
[DllImport("user32.dll")]
static extern int SetWindowLong(IntPtr hwnd, int index, int newStyle);
[DllImport("user32.dll")]
static extern bool SetWindowPos(IntPtr hwnd, IntPtr hwndInsertAfter,
int x, int y, int width, int height, uint flags);
[DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hwnd, uint msg, IntPtr wParam, IntPtr lParam);
private const int GWL_EXSTYLE = -20;
private const int WS_EX_DLGMODALFRAME = 0x0001;
private const int SWP_NOSIZE = 0x0001;
private const int SWP_NOMOVE = 0x0002;
private const int SWP_NOZORDER = 0x0004;
private const int SWP_FRAMECHANGED = 0x0020;
private const uint WM_SETICON = 0x0080;
private const int GWL_STYLE = -16;
private const int WS_MAXIMIZEBOX = 0x00010000;
private const int WS_MINIMIZEBOX = 0x00020000;
private ContentControl mContentHost;
#endregion ...Variables...
#region ... Events ...
#endregion ...Events...
#region ... Constructor...
/// <summary>
///
/// </summary>
static CustomWindowBase()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomWindowBase), new FrameworkPropertyMetadata(typeof(CustomWindowBase)));
}
/// <summary>
///
/// </summary>
public CustomWindowBase()
: base()
{
this.Loaded += new RoutedEventHandler(CustomWindowBase_Loaded);
}
#endregion ...Constructor...
#region ... Properties ...
/// <summary>
/// 是否确认关闭窗口
/// </summary>
public bool IsOK
{
get { return (bool)GetValue(IsOKProperty); }
set { SetValue(IsOKProperty, value); }
}
/// <summary>
///
/// </summary>
public static readonly DependencyProperty IsOKProperty = DependencyProperty.Register("IsOK", typeof(bool), typeof(CustomWindowBase), new UIPropertyMetadata(false, new PropertyChangedCallback(OKPropertyChanged)));
/// <summary>
/// 是否取消关闭窗口
/// </summary>
public bool IsCancel
{
get { return (bool)GetValue(IsCancelProperty); }
set { SetValue(IsCancelProperty, value); }
}
/// <summary>
///
/// </summary>
public static readonly DependencyProperty IsCancelProperty = DependencyProperty.Register("IsCancel", typeof(bool), typeof(CustomWindowBase), new UIPropertyMetadata(false, new PropertyChangedCallback(CancelPropertyChanged)));
/// <summary>
/// 已经关闭
/// </summary>
public bool IsClosed
{
get { return (bool)GetValue(IsClosedProperty); }
set { SetValue(IsClosedProperty, value); }
}
/// <summary>
///
/// </summary>
public static readonly DependencyProperty IsClosedProperty = DependencyProperty.Register("IsClosed", typeof(bool), typeof(CustomWindowBase), new FrameworkPropertyMetadata(false, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));
/// <summary>
///
/// </summary>
public bool IsEnableMax
{
get { return (bool)GetValue(IsEnableMaxProperty); }
set { SetValue(IsEnableMaxProperty, value); }
}
/// <summary>
///
/// </summary>
public static readonly DependencyProperty IsEnableMaxProperty = DependencyProperty.Register("IsEnableMax", typeof(bool), typeof(CustomWindowBase), new FrameworkPropertyMetadata(true, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, new PropertyChangedCallback(IsEnableMaxPropertyChanged)));
/// <summary>
/// 隐藏窗口
/// </summary>
public bool IsHidden
{
get { return (bool)GetValue(IsHiddenProperty); }
set { SetValue(IsHiddenProperty, value); }
}
/// <summary>
///
/// </summary>
public static readonly DependencyProperty IsHiddenProperty = DependencyProperty.Register("IsHidden", typeof(bool), typeof(CustomWindowBase), new UIPropertyMetadata(false, new PropertyChangedCallback(IsHiddenPropertyChanged)));
/// <summary>
/// 图标
/// </summary>
public string IconString
{
get { return (string)GetValue(IconStringProperty); }
set { SetValue(IconStringProperty, value); }
}
/// <summary>
///
/// </summary>
public static readonly DependencyProperty IconStringProperty = DependencyProperty.Register("IconString", typeof(string), typeof(CustomWindowBase), new UIPropertyMetadata(""));
#endregion ...Properties...
#region ... Methods ...
/// <summary>
///
/// </summary>
/// <param name="window"></param>
public static void RemoveIcon(Window window)
{
IntPtr hwnd = new WindowInteropHelper(window).Handle;
int extendedStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
SetWindowLong(hwnd, GWL_EXSTYLE, extendedStyle | WS_EX_DLGMODALFRAME);
SendMessage(hwnd, WM_SETICON, new IntPtr(1), IntPtr.Zero);
SendMessage(hwnd, WM_SETICON, IntPtr.Zero, IntPtr.Zero);
}
/// <summary>
/// Disables the minimizebox.
/// </summary>
/// <param name="window">The window.</param>
public static void DisableMinimizebox(Window window)
{
var hwnd = new WindowInteropHelper(window).Handle;
var value = GetWindowLong(hwnd, GWL_STYLE);
SetWindowLong(hwnd, GWL_STYLE, (int)(value & ~WS_MINIMIZEBOX));
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void CustomWindowBase_Loaded(object sender, RoutedEventArgs e)
{
this.Loaded -= (CustomWindowBase_Loaded);
if (string.IsNullOrEmpty(IconString))
{
RemoveIcon(this);
}
else
{
this.Icon = new BitmapImage(new Uri(IconString));
}
if (IsEnableMax)
{
DisableMinimizebox(this);
}
this.Activate();
}
/// <summary>
///
/// </summary>
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
mContentHost = this.GetTemplateChild("content_host") as ContentControl;
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="arg"></param>
private static void IsEnableMaxPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs arg)
{
var sd = (sender as CustomWindowBase);
if (sd.IsEnableMax)
{
sd.ResizeMode = ResizeMode.CanResizeWithGrip;
}
else
{
sd.ResizeMode = ResizeMode.NoResize;
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="arg"></param>
private static void OKPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs arg)
{
(sender as CustomWindowBase).OKClose();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="arg"></param>
private static void CancelPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs arg)
{
(sender as CustomWindowBase).CancelClose();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="arg"></param>
private static void IsHiddenPropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs arg)
{
if ((bool)arg.NewValue)
{
(sender as CustomWindowBase).Hidden();
}
}
/// <summary>
/// 隐藏窗口
/// </summary>
internal void Hidden()
{
this.Visibility = Visibility.Hidden;
}
/// <summary>
/// 确认关闭窗口
/// </summary>
internal void OKClose()
{
if (System.Windows.Interop.ComponentDispatcher.IsThreadModal && this.IsLoaded)
DialogResult = true;
Close();
}
/// <summary>
/// 取消关闭窗口
/// </summary>
internal void CancelClose()
{
Close();
}
/// <summary>
/// 窗口关闭后回调
/// </summary>
/// <param name="e"></param>
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
IsClosed = true;
if (this.DataContext is IDisposable)
{
(this.DataContext as IDisposable).Dispose();
}
mContentHost.Content = null;
mContentHost = null;
}
/// <summary>
///
/// </summary>
/// <param name="e"></param>
protected override void OnActivated(EventArgs e)
{
base.OnActivated(e);
if (this.DataContext is WindowViewModelBase)
{
(this.DataContext as WindowViewModelBase).Active();
}
}
/// <summary>
///
/// </summary>
/// <param name="e"></param>
protected override void OnDeactivated(EventArgs e)
{
base.OnDeactivated(e);
if (this.DataContext is WindowViewModelBase)
{
(this.DataContext as WindowViewModelBase).DeActive();
}
}
#endregion ...Methods...
#region ... Interfaces ...
#endregion ...Interfaces...
}
}
//==============================================================
// Copyright (C) 2020 Inc. All rights reserved.
//
//==============================================================
// Create by 种道洋 at 2020/3/17 17:16:04.
// Version 1.0
// 种道洋
//==============================================================
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
namespace HisDataTools
{
public static class DialogHelper
{
/// <summary>
///
/// </summary>
/// <returns></returns>
public static Window GetActiveWindow()
{
if (Application.Current != null)
{
foreach (Window w in Application.Current.Windows)
{
if (w.IsActive)
{
return w;
}
}
}
return null;
}
/// <summary>
///
/// </summary>
/// <param name="model"></param>
/// <param name="topMost"></param>
/// <param name="titleBar"></param>
/// <param name="showInCenter"></param>
/// <param name="x"></param>
/// <param name="y"></param>
public static void Show(this WindowViewModelBase model, bool topMost = false, bool titleBar = true, bool showInCenter = true, int x = int.MinValue, int y = int.MinValue)
{
CustomWindowBase cwb = new CustomWindowBase();
cwb.Owner = GetActiveWindow();
if (showInCenter)
{
if (cwb.Owner != null)
{
cwb.WindowStartupLocation = WindowStartupLocation.CenterOwner;
}
else
{
cwb.WindowStartupLocation = WindowStartupLocation.CenterScreen;
}
}
else
{
cwb.WindowStartupLocation = WindowStartupLocation.Manual;
cwb.Left = x;
cwb.Top = y;
}
cwb.DataContext = model;
if (model.MinHeight != null)
{
cwb.MinHeight = model.MinHeight.Value;
}
if (model.MinWidth != null)
{
cwb.MinWidth = model.MinWidth.Value;
}
if (model.DefaultHeight != null)
{
if (titleBar)
{
if (model.IsOkCancel)
{
cwb.Height = model.DefaultHeight.Value + 70;
}
else
{
cwb.Height = model.DefaultHeight.Value + 10;
}
}
cwb.SizeToContent = SizeToContent.Manual;
}
if (model.DefaultWidth != null)
{
if (titleBar)
cwb.Width = model.DefaultWidth.Value + 16;
cwb.SizeToContent = SizeToContent.Manual;
}
cwb.Topmost = topMost;
if (!titleBar)
{
cwb.WindowStyle = WindowStyle.None;
}
model.ActiveWindow = cwb;
cwb.Show();
}
/// <summary>
/// 显示对话框
/// </summary>
/// <param name="model"></param>
/// <param name="topMost">是否顶层窗口</param>
/// <param name="titleBar">是否需要显示TitleBar</param>
/// <returns></returns>
public static bool? ShowDialog(this WindowViewModelBase model, bool topMost = false, bool titleBar = true)
{
CustomWindowBase cwb = new CustomWindowBase();
cwb.Owner = GetActiveWindow();
if (cwb.Owner != null)
{
cwb.WindowStartupLocation = WindowStartupLocation.CenterOwner;
}
else
{
cwb.WindowStartupLocation = WindowStartupLocation.CenterScreen;
//cwb.Topmost = true;
}
cwb.DataContext = model;
if (model.MinHeight != null)
{
cwb.MinHeight = model.MinHeight.Value;
}
if (model.MinWidth != null)
{
cwb.MinWidth = model.MinWidth.Value;
}
if (model.DefaultHeight != null)
{
if (titleBar)
{
if (model.IsOkCancel)
{
cwb.Height = model.DefaultHeight.Value + 70;
}
else
{
cwb.Height = model.DefaultHeight.Value + 10;
}
}
cwb.SizeToContent = SizeToContent.Manual;
}
if (model.DefaultWidth != null)
{
if (titleBar)
cwb.Width = model.DefaultWidth.Value + 16;
cwb.SizeToContent = SizeToContent.Manual;
}
cwb.Topmost = topMost;
if (!titleBar)
{
cwb.WindowStyle = WindowStyle.None;
}
return cwb.ShowDialog().Value;
}
}
}
//==============================================================
// Copyright (C) 2020 Inc. All rights reserved.
//
//==============================================================
// Create by 种道洋 at 2020/3/17 17:00:31.
// Version 1.0
// 种道洋
//==============================================================
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Windows.Input;
namespace HisDataTools
{
/// <summary>
/// A command whose sole purpose is to
/// relay its functionality to other
/// objects by invoking delegates. The
/// default return value for the CanExecute
/// method is 'true'.
/// </summary>
public class RelayCommand<T> : ICommand
{
#region ... Variables ...
readonly Action<T> mExecute = null;
readonly Predicate<T> mCanExecute = null;
#endregion ...Variables...
#region ... Events ...
/// <summary>
///
/// </summary>
public event EventHandler CanExecuteChanged
{
add
{
if (mCanExecute != null)
CommandManager.RequerySuggested += value;
}
remove
{
if (mCanExecute != null)
CommandManager.RequerySuggested -= value;
}
}
#endregion ...Events...
#region ... Constructor...
/// <summary>
///
/// </summary>
/// <param name="execute"></param>
public RelayCommand(Action<T> execute)
: this(execute, null)
{
}
/// <summary>
/// Creates a new command.
/// </summary>
/// <param name="execute">The execution logic.</param>
/// <param name="canExecute">The execution status logic.</param>
public RelayCommand(Action<T> execute, Predicate<T> canExecute)
{
if (execute == null)
throw new ArgumentNullException("execute");
mExecute = execute;
mCanExecute = canExecute;
}
#endregion ...Constructor...
#region ... Properties ...
#endregion ...Properties...
#region ... Methods ...
/// <summary>
///
/// </summary>
/// <param name="parameter"></param>
/// <returns></returns>
[DebuggerStepThrough]
public bool CanExecute(object parameter)
{
return mCanExecute == null ? true : mCanExecute((T)parameter);
}
/// <summary>
///
/// </summary>
/// <param name="parameter"></param>
public void Execute(object parameter)
{
mExecute((T)parameter);
}
#endregion ...Methods...
#region ... Interfaces ...
#endregion ...Interfaces...
}
/// <summary>
/// A command whose sole purpose is to
/// relay its functionality to other
/// objects by invoking delegates. The
/// default return value for the CanExecute
/// method is 'true'.
/// </summary>
public class RelayCommand : ICommand
{
#region ... Variables ...
/// <summary>
///
/// </summary>
readonly Action mExecute;
/// <summary>
///
/// </summary>
readonly Func<bool> mCanExecute;
#endregion ...Variables...
#region ... Events ...
#endregion ...Events...
#region ... Constructor...
/// <summary>
/// Creates a new command that can always execute.
/// </summary>
/// <param name="execute">The execution logic.</param>
public RelayCommand(Action execute)
: this(execute, null)
{
}
/// <summary>
/// Creates a new command.
/// </summary>
/// <param name="execute">The execution logic.</param>
/// <param name="canExecute">The execution status logic.</param>
public RelayCommand(Action execute, Func<bool> canExecute)
{
if (execute == null)
throw new ArgumentNullException("execute");
mExecute = execute;
mCanExecute = canExecute;
}
#endregion ...Constructor...
#region ... Properties ...
#endregion ...Properties...
#region ... Methods ...
/// <summary>
///
/// </summary>
/// <param name="parameter"></param>
/// <returns></returns>
[DebuggerStepThrough]
public bool CanExecute(object parameter)
{
return mCanExecute == null ? true : mCanExecute();
}
/// <summary>
///
/// </summary>
public event EventHandler CanExecuteChanged
{
add
{
if (mCanExecute != null)
CommandManager.RequerySuggested += value;
}
remove
{
if (mCanExecute != null)
CommandManager.RequerySuggested -= value;
}
}
/// <summary>
///
/// </summary>
/// <param name="parameter"></param>
public void Execute(object parameter)
{
mExecute();
}
#endregion ...Methods...
#region ... Interfaces ...
#endregion ...Interfaces...
}
}
//==============================================================
// Copyright (C) 2020 Inc. All rights reserved.
//
//==============================================================
// Create by 种道洋 at 2020/3/29 11:05:05.
// Version 1.0
// 种道洋
//==============================================================
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace HisDataTools
{
public class Res
{
public static string Get(string name)
{
return Properties.Resources.ResourceManager.GetString(name, Thread.CurrentThread.CurrentUICulture);
}
}
}
//==============================================================
// Copyright (C) 2020 Inc. All rights reserved.
//
//==============================================================
// Create by 种道洋 at 2020/3/17 17:13:55.
// Version 1.0
// 种道洋
//==============================================================
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.Windows;
using System.Windows.Markup;
namespace HisDataTools
{
[MarkupExtensionReturnType(typeof(object))]
[ContentProperty("Key")]
public class ResMarkerExtension : MarkupExtension
{
#region ... Variables ...
private static List<ResMarkerExtension> mCachItems = new List<ResMarkerExtension>();
private FrameworkElement mTarget;
private string mAppendChar = "";
#endregion ...Variables...
#region ... Events ...
#endregion ...Events...
#region ... Constructor...
/// <summary>
///
/// </summary>
public ResMarkerExtension()
{
}
/// <summary>
///
/// </summary>
/// <param name="key"></param>
public ResMarkerExtension(string key) : this()
{
Key = key;
if (mCachItems != null)
{
mCachItems.Add(this);
}
}
public ResMarkerExtension(string key,string appendChar) : this(key)
{
mAppendChar = appendChar;
}
#endregion ...Constructor...
#region ... Properties ...
/// <summary>
///
/// </summary>
public FrameworkElement Target
{
get
{
return mTarget;
}
set
{
if (mTarget != value)
{
mTarget = value;
if (value != null)
mTarget.Unloaded += (mTarget_Unloaded);
}
}
}
/// <summary>
///
/// </summary>
public object Property { get; set; }
/// <summary>
///
/// </summary>
public string Key { get; set; }
#endregion ...Properties...
#region ... Methods ...
/// <summary>
///
/// </summary>
/// <param name="serviceProvider"></param>
/// <returns></returns>
public override object ProvideValue(IServiceProvider serviceProvider)
{
var vv = (serviceProvider.GetService(typeof(System.Xaml.IRootObjectProvider)) as System.Xaml.IRootObjectProvider);
if (vv != null)
{
var root = vv.RootObject.GetType().Assembly;
var target = serviceProvider.GetService(typeof(System.Windows.Markup.IProvideValueTarget)) as System.Windows.Markup.IProvideValueTarget;
if (target != null)
{
Target = target.TargetObject as FrameworkElement;
Property = target.TargetProperty;
}
}
return GetValue();
}
/// <summary>
///
/// </summary>
/// <returns></returns>
private string GetValue()
{
if (string.IsNullOrEmpty(Key))
{
return " "+ mAppendChar;
}
else
{
System.Globalization.CultureInfo cinfo = Thread.CurrentThread.CurrentUICulture;
return Properties.Resources.ResourceManager.GetString(Key, cinfo)+ mAppendChar;
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void mTarget_Unloaded(object sender, RoutedEventArgs e)
{
if (mCachItems != null && mCachItems.Contains(this))
{
mCachItems.Remove(this);
}
mTarget.Unloaded -= (mTarget_Unloaded);
mTarget = null;
}
/// <summary>
///
/// </summary>
public void Update()
{
if (Target != null)
Target.SetValue(Property as DependencyProperty, GetValue());
}
/// <summary>
/// 更新资源
/// </summary>
public static void UpdateResource()
{
if (mCachItems != null)
{
foreach (var vv in mCachItems)
{
vv.Update();
}
}
}
/// <summary>
///
/// </summary>
public static void ClearCach()
{
mCachItems.Clear();
}
#endregion ...Methods...
#region ... Interfaces ...
#endregion ...Interfaces...
}
}
//==============================================================
// Copyright (C) 2020 Inc. All rights reserved.
//
//==============================================================
// Create by 种道洋 at 2020/3/17 17:02:43.
// Version 1.0
// 种道洋
//==============================================================
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Windows.Input;
namespace HisDataTools
{
/// <summary>
///
/// </summary>
public abstract class WindowViewModelBase : INotifyPropertyChanged, IDisposable
{
#region ... Variables ...
/// <summary>
///
/// </summary>
private ICommand mCancelCommand;
/// <summary>
///
/// </summary>
private ICommand mOKCommand;
/// <summary>
///
/// </summary>
private string mTitle;
/// <summary>
///
/// </summary>
private string mIcon;
/// <summary>
///
/// </summary>
private bool mIsCancel;
/// <summary>
///
/// </summary>
private bool mIsOK;
/// <summary>
///
/// </summary>
private bool mIsClosed;
/// <summary>
///
/// </summary>
private bool mIsEnableMax = true;
/// <summary>
///
/// </summary>
private bool mIsHidden;
private string mMessage;
private bool mIsOkCancel = true;
private double? mMinWidth;
private double? mMinHeight;
private double? mDefaultWidth;
private double? mDefaultHeight;
private bool mIsEnableDefault = true;
#endregion ...Variables...
#region ... Events ...
#endregion ...Events...
#region ... Constructor...
#endregion ...Constructor...
#region ... Properties ...
/// <summary>
///
/// </summary>
public bool IsEnableDefault
{
get
{
return mIsEnableDefault;
}
set
{
if (mIsEnableDefault != value)
{
mIsEnableDefault = value;
OnPropertyChanged("IsEnableDefault");
}
}
}
/// <summary>
///
/// </summary>
public double? MinWidth
{
get
{
return mMinWidth;
}
set
{
if (mMinWidth != value)
{
mMinWidth = value;
OnPropertyChanged("MinWidth");
}
}
}
/// <summary>
///
/// </summary>
public double? MinHeight
{
get
{
return mMinHeight;
}
set
{
if (mMinHeight != value)
{
mMinHeight = value;
OnPropertyChanged("MinHeight");
}
}
}
/// <summary>
///
/// </summary>
public double? DefaultHeight
{
get
{
return mDefaultHeight;
}
set
{
if (mDefaultHeight != value)
{
mDefaultHeight = value;
OnPropertyChanged("DefaultHeight");
}
}
}
/// <summary>
///
/// </summary>
public double? DefaultWidth
{
get
{
return mDefaultWidth;
}
set
{
if (mDefaultWidth != value)
{
mDefaultWidth = value;
OnPropertyChanged("DefaultWidth");
}
}
}
/// <summary>
/// 是否是包含OK 和 Cancel的标准模式
/// </summary>
public bool IsOkCancel
{
get
{
return mIsOkCancel;
}
set
{
if (mIsOkCancel != value)
{
mIsOkCancel = value;
OnPropertyChanged("IsOkCancel");
}
}
}
/// <summary>
/// 图标
/// </summary>
public String Icon
{
get
{
return mIcon;
}
set
{
if (mIcon != value)
{
mIcon = value;
}
}
}
/// <summary>
/// 标题
/// </summary>
public string Title
{
get
{
return mTitle;
}
set
{
if (mTitle != value)
{
mTitle = value;
OnPropertyChanged("Title");
}
}
}
/// <summary>
/// 确定
/// </summary>
public bool IsOK
{
get
{
return mIsOK;
}
protected set
{
if (mIsOK != value)
{
mIsOK = value;
OnPropertyChanged("IsOK");
}
}
}
/// <summary>
/// 取消
/// </summary>
public bool IsCancel
{
get
{
return mIsCancel;
}
private set
{
if (mIsCancel != value)
{
mIsCancel = value;
OnPropertyChanged("IsCancel");
}
}
}
/// <summary>
/// 是能最大化按钮
/// </summary>
public bool IsEnableMax
{
get
{
return mIsEnableMax;
}
set
{
if (mIsEnableMax != value)
{
mIsEnableMax = value;
OnPropertyChanged("IsEnableMax");
}
}
}
/// <summary>
/// 状态栏提示信息
/// </summary>
public string Message
{
get
{
return mMessage;
}
set
{
if (mMessage != value)
{
mMessage = value;
OnPropertyChanged("Message");
}
}
}
/// <summary>
///
/// </summary>
public virtual ICommand CancelCommand
{
get
{
if (mCancelCommand == null)
{
mCancelCommand = new RelayCommand(() =>
{
if (CancelCommandProcess())
{
IsCancel = true;
}
}, CanCancelCommandProcess);
}
return mCancelCommand;
}
}
/// <summary>
///
/// </summary>
public virtual ICommand OKCommand
{
get
{
if (mOKCommand == null)
{
mOKCommand = new RelayCommand(() =>
{
if (OKCommandProcess())
{
IsOK = true;
}
}, CanOKCommandProcess);
}
return mOKCommand;
}
}
/// <summary>
/// 关闭
/// </summary>
public bool IsClosed
{
get
{
return mIsClosed;
}
set
{
if (mIsClosed != value)
{
mIsClosed = value;
ClosedProcess();
OnPropertyChanged("IsClosed");
}
}
}
/// <summary>
/// 隐藏
/// </summary>
public bool IsHidden
{
get
{
return mIsHidden;
}
set
{
if (mIsHidden != value)
{
mIsHidden = value;
OnPropertyChanged("IsHidden");
}
}
}
/// <summary>
/// 当前激活的窗口实例引用
/// </summary>
public System.Windows.Window ActiveWindow { get; set; }
#endregion ...Properties...
#region ... Methods ...
/// <summary>
/// 隐藏窗口
/// </summary>
public void Hidden()
{
IsHidden = true;
}
/// <summary>
/// 关闭处理
/// </summary>
protected virtual void ClosedProcess()
{
}
/// <summary>
/// 确定处理函数
/// </summary>
/// <returns></returns>
protected virtual bool OKCommandProcess()
{
return true;
}
/// <summary>
/// 取消处理函数
/// </summary>
/// <returns></returns>
protected virtual bool CancelCommandProcess()
{
return true;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
protected virtual bool CanOKCommandProcess()
{
return true;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
protected virtual bool CanCancelCommandProcess()
{
return true;
}
/// <summary>
///
/// </summary>
public virtual void Dispose()
{
ActiveWindow = null;
}
/// <summary>
/// 激活
/// </summary>
public virtual void Active()
{
}
/// <summary>
/// 取消激活
/// </summary>
public virtual void DeActive()
{
}
#endregion ...Methods...
#region ... Interfaces ...
#endregion ...Interfaces...
#region INotifyPropertyChanged 成员
/// <summary>
///
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
/// <summary>
///
/// </summary>
/// <param name="name"></param>
protected void OnPropertyChanged(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
#endregion
}
}
//==============================================================
// Copyright (C) 2020 Inc. All rights reserved.
//
//==============================================================
// Create by 种道洋 at 2020/4/12 15:35:17.
// Version 1.0
// 种道洋
//==============================================================
using Cdy.Tag;
using System;
using System.Collections.Generic;
using System.Text;
namespace HisDataTools
{
/// <summary>
///
/// </summary>
public class HisDataManager
{
#region ... Variables ...
/// <summary>
///
/// </summary>
public static HisDataManager Manager = new HisDataManager();
#endregion ...Variables...
#region ... Events ...
#endregion ...Events...
#region ... Constructor...
#endregion ...Constructor...
#region ... Properties ...
/// <summary>
///
/// </summary>
public string SelectDatabase { get; set; }
/// <summary>
///
/// </summary>
public List<string> Databases { get; set; }
#endregion ...Properties...
#region ... Methods ...
/// <summary>
///
/// </summary>
public void Init()
{
DataFileSeriserManager.manager.Init();
CompressUnitManager.Manager.Init();
ScanDatabase();
}
/// <summary>
///
/// </summary>
public void ScanDatabase()
{
List<string> bds = new List<string>();
string dbpath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(this.GetType().Assembly.Location), "Data");
if (System.IO.Directory.Exists(dbpath))
{
foreach (var vv in new System.IO.DirectoryInfo(dbpath).EnumerateDirectories())
{
bds.Add(vv.Name);
}
}
Databases = bds;
}
#endregion ...Methods...
#region ... Interfaces ...
#endregion ...Interfaces...
}
}
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UseWPF>true</UseWPF>
<Authors>Chongdaoyang</Authors>
<Description>历史数据查询工具</Description>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\DBHisData\DBHisData.csproj" />
</ItemGroup>
<ItemGroup>
<Compile Update="Properties\Resources.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Folder Include="ViewModel\" />
</ItemGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="copy &quot;$(TargetPath)&quot; &quot;.\.\Output&quot; /y&#xD;&#xA;copy &quot;$(TargetDir)$(TargetName).XML&quot; &quot;.\.\Output&quot; /y&#xD;&#xA;copy &quot;$(TargetDir)$(TargetName).XML&quot; &quot;.\.\Output\Xml&quot; /y&#xD;&#xA;if exist &quot;$(TargetDir)$(TargetName).pdb&quot; copy &quot;$(TargetDir)$(TargetName).pdb&quot; &quot;.\.\Output&quot; /y" />
</Target>
</Project>
\ No newline at end of file
<Window x:Class="HisDataTools.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:HisDataTools"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<Style x:Key="FocusVisual">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<Rectangle Margin="2" StrokeDashArray="1 2" SnapsToDevicePixels="true" StrokeThickness="1" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<SolidColorBrush x:Key="Button.Static.Background" Color="#FFDDDDDD"/>
<SolidColorBrush x:Key="Button.Static.Border" Color="#FF707070"/>
<SolidColorBrush x:Key="Button.MouseOver.Background" Color="#FFBEE6FD"/>
<SolidColorBrush x:Key="Button.MouseOver.Border" Color="#FF3C7FB1"/>
<SolidColorBrush x:Key="Button.Pressed.Background" Color="#FFC4E5F6"/>
<SolidColorBrush x:Key="Button.Pressed.Border" Color="#FF2C628B"/>
<SolidColorBrush x:Key="Button.Disabled.Background" Color="#FFF4F4F4"/>
<SolidColorBrush x:Key="Button.Disabled.Border" Color="#FFADB2B5"/>
<SolidColorBrush x:Key="Button.Disabled.Foreground" Color="#FF838383"/>
<Style x:Key="MenuButton" TargetType="{x:Type Button}">
<Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{StaticResource Button.Static.Border}"/>
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="HorizontalContentAlignment" Value="Center"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Padding" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" SnapsToDevicePixels="true">
<ContentPresenter x:Name="contentPresenter" Focusable="False" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsDefaulted" Value="true">
<Setter Property="BorderBrush" TargetName="border" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.MouseOver.Background}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.MouseOver.Border}"/>
</Trigger>
<Trigger Property="IsPressed" Value="true">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Pressed.Background}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Pressed.Border}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Background" TargetName="border" Value="{StaticResource Button.Disabled.Background}"/>
<Setter Property="BorderBrush" TargetName="border" Value="{StaticResource Button.Disabled.Border}"/>
<Setter Property="TextElement.Foreground" TargetName="contentPresenter" Value="{StaticResource Button.Disabled.Foreground}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="48"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border BorderThickness="0,0,0,1" BorderBrush="LightGray" Background="AliceBlue">
<StackPanel Orientation="Horizontal">
<Button Style="{DynamicResource MenuButton}" Command="{Binding LoginCommand}" HorizontalAlignment="Left" Margin="10,0,0,0" Height="32" VerticalAlignment="Center" Width="80" >
<Button.ContentTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="/Image/登录.png" Height="16" RenderOptions.BitmapScalingMode="NearestNeighbor"/>
<TextBlock Text="{local:ResMarker Open}" VerticalAlignment="Center" Margin="5,0"/>
</StackPanel>
</DataTemplate>
</Button.ContentTemplate>
</Button>
</StackPanel>
</Border>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace HisDataTools
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
文件已添加
using System.Windows;
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
//(used if a resource is not found in the page,
// or application resource dictionaries)
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
//(used if a resource is not found in the page,
// app, or any theme specific resource dictionaries)
)]
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
namespace HisDataTools.Properties {
using System;
/// <summary>
/// 一个强类型的资源类,用于查找本地化的字符串等。
/// </summary>
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// 返回此类使用的缓存的 ResourceManager 实例。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HisDataTools.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// 重写当前线程的 CurrentUICulture 属性
/// 重写当前线程的 CurrentUICulture 属性。
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// 查找类似 Open 的本地化字符串。
/// </summary>
internal static string Open {
get {
return ResourceManager.GetString("Open", resourceCulture);
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Open" xml:space="preserve">
<value>Open</value>
</data>
</root>
\ No newline at end of file
//==============================================================
// Copyright (C) 2020 Inc. All rights reserved.
//
//==============================================================
// Create by 种道洋 at 2020/4/3 17:06:09.
// Version 1.0
// 种道洋
//==============================================================
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Data;
namespace HisDataTools
{
/// <summary>
/// Class IndexConverter
/// </summary>
public class IndexConverter : IMultiValueConverter
{
#region ...Variables ...
/// <summary>
/// The m collection view
/// </summary>
ListCollectionView mCollectionView;
#endregion ...Variables ...
#region ...Constructor...
#endregion ...Constructor...
#region ...Properties ...
#endregion ...Properties ...
#region ...Methods ...
#endregion ...Methods ...
#region ...Events ...
#endregion ...Events ...
#region ...Interfaces ...
/// <summary>
/// Converts source values to a value for the binding target. The data binding engine calls this method when it propagates the values from source bindings to the binding target.
/// </summary>
/// <param name="values">The array of values that the source bindings in the <see cref="T:System.Windows.Data.MultiBinding" /> produces. The value <see cref="F:System.Windows.DependencyProperty.UnsetValue" /> indicates that the source binding has no value to provide for conversion.</param>
/// <param name="targetType">The type of the binding target property.</param>
/// <param name="parameter">The converter parameter to use.</param>
/// <param name="culture">The culture to use in the converter.</param>
/// <returns>A converted value.If the method returns null, the valid null value is used.A return value of <see cref="T:System.Windows.DependencyProperty" />.<see cref="F:System.Windows.DependencyProperty.UnsetValue" /> indicates that the converter did not produce a value, and that the binding will use the <see cref="P:System.Windows.Data.BindingBase.FallbackValue" /> if it is available, or else will use the default value.A return value of <see cref="T:System.Windows.Data.Binding" />.<see cref="F:System.Windows.Data.Binding.DoNothing" /> indicates that the binding does not transfer the value or use the <see cref="P:System.Windows.Data.BindingBase.FallbackValue" /> or the default value.</returns>
/// <exception cref="System.NotImplementedException"></exception>
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (values != null)
{
var item = values[0];
if (mCollectionView == null)
{
mCollectionView = CollectionViewSource.GetDefaultView(values[1]) as ListCollectionView;
}
return (mCollectionView.IndexOf(item) + 1).ToString();
}
return 0;
}
/// <summary>
/// Converts a binding target value to the source binding values.
/// </summary>
/// <param name="value">The value that the binding target produces.</param>
/// <param name="targetTypes">The array of types to convert to. The array length indicates the number and types of values that are suggested for the method to return.</param>
/// <param name="parameter">The converter parameter to use.</param>
/// <param name="culture">The culture to use in the converter.</param>
/// <returns>An array of values that have been converted from the target value back to the source values.</returns>
/// <exception cref="System.NotImplementedException"></exception>
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion ...Interfaces ...
}
}

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29424.173
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cdy.Tag", "Cdy.Tag\Cdy.Tag.csproj", "{B4DB2B2D-6754-4B71-BC37-C8F1816646C1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBInStudio.Desktop", "DbManager.Desktop\DBInStudio.Desktop.csproj", "{013BD1E6-D607-4994-9EBE-2E9ED116AAC6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBRuntime", "DataRunner\DBRuntime.csproj", "{B6CE638E-0175-4CEE-ABE7-D8E4A25B2328}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cdy.Tag.Common", "Cdy.Tag.Common\Cdy.Tag.Common.csproj", "{34F10592-77BF-47D5-B282-3E5856338F97}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cdy.Tag.CommonTests", "Cdy.Tag.CommonTests\Cdy.Tag.CommonTests.csproj", "{15DC4D19-A2D0-4624-B83E-12E6466F148C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{1A69E6A7-33B3-4DAF-9D9D-FD7CD474FFD3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DataRunnerTests", "DataRunnerTests\DataRunnerTests.csproj", "{DF77A949-1A7A-4526-825D-5BF5CC5162E9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBDevelopService", "DBDevelopService\DBDevelopService.csproj", "{2925BF23-5C16-42C3-97A0-9E0427F41D8F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBInStudioServer", "DBStudio\DBInStudioServer.csproj", "{14B62AEE-0651-4CE3-B330-AB0E711719CE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Cdy.Tag.Driver", "Cdy.Tag.Driver\Cdy.Tag.Driver.csproj", "{A006F93A-A70D-4A0F-AA09-E08A001C5C0D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SimDriver", "SimDriver\SimDriver.csproj", "{FC8C1E8A-A510-4EDE-9D1B-479EACAAB207}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HisDataService", "HisDataService\HisDataService.csproj", "{07D6078C-1B44-4AD2-A042-AA679420E09B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBDevelopClientApi", "DBDevelopClientApi\DBDevelopClientApi.csproj", "{8A29E2E6-D7B9-4862-965B-282C4824527B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBHisData", "DBHisData\DBHisData.csproj", "{E347F2F3-FF6A-46EA-B6A3-31334F626EF6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HisDataTools", "HisDataTools\HisDataTools.csproj", "{4EDEE8A2-D89D-4040-B786-5374C65E8074}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBInRun", "DBInRun\DBInRun.csproj", "{F6B8840F-9F8C-4194-923F-BCF0BA1D9BF3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "InRun", "InRun", "{95F6A9D4-42A9-483A-80F8-EADDD6CEFEDE}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "InStudio", "InStudio", "{1DBC0DA8-2E80-4C0D-AB1F-A1E54CF304FF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{2C104906-798F-4EEB-931C-F01600EA9F7F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B4DB2B2D-6754-4B71-BC37-C8F1816646C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B4DB2B2D-6754-4B71-BC37-C8F1816646C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B4DB2B2D-6754-4B71-BC37-C8F1816646C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B4DB2B2D-6754-4B71-BC37-C8F1816646C1}.Release|Any CPU.Build.0 = Release|Any CPU
{013BD1E6-D607-4994-9EBE-2E9ED116AAC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{013BD1E6-D607-4994-9EBE-2E9ED116AAC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{013BD1E6-D607-4994-9EBE-2E9ED116AAC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{013BD1E6-D607-4994-9EBE-2E9ED116AAC6}.Release|Any CPU.Build.0 = Release|Any CPU
{B6CE638E-0175-4CEE-ABE7-D8E4A25B2328}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B6CE638E-0175-4CEE-ABE7-D8E4A25B2328}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B6CE638E-0175-4CEE-ABE7-D8E4A25B2328}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B6CE638E-0175-4CEE-ABE7-D8E4A25B2328}.Release|Any CPU.Build.0 = Release|Any CPU
{34F10592-77BF-47D5-B282-3E5856338F97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{34F10592-77BF-47D5-B282-3E5856338F97}.Debug|Any CPU.Build.0 = Debug|Any CPU
{34F10592-77BF-47D5-B282-3E5856338F97}.Release|Any CPU.ActiveCfg = Release|Any CPU
{34F10592-77BF-47D5-B282-3E5856338F97}.Release|Any CPU.Build.0 = Release|Any CPU
{15DC4D19-A2D0-4624-B83E-12E6466F148C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{15DC4D19-A2D0-4624-B83E-12E6466F148C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{15DC4D19-A2D0-4624-B83E-12E6466F148C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15DC4D19-A2D0-4624-B83E-12E6466F148C}.Release|Any CPU.Build.0 = Release|Any CPU
{DF77A949-1A7A-4526-825D-5BF5CC5162E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF77A949-1A7A-4526-825D-5BF5CC5162E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF77A949-1A7A-4526-825D-5BF5CC5162E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF77A949-1A7A-4526-825D-5BF5CC5162E9}.Release|Any CPU.Build.0 = Release|Any CPU
{2925BF23-5C16-42C3-97A0-9E0427F41D8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2925BF23-5C16-42C3-97A0-9E0427F41D8F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2925BF23-5C16-42C3-97A0-9E0427F41D8F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2925BF23-5C16-42C3-97A0-9E0427F41D8F}.Release|Any CPU.Build.0 = Release|Any CPU
{14B62AEE-0651-4CE3-B330-AB0E711719CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{14B62AEE-0651-4CE3-B330-AB0E711719CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{14B62AEE-0651-4CE3-B330-AB0E711719CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{14B62AEE-0651-4CE3-B330-AB0E711719CE}.Release|Any CPU.Build.0 = Release|Any CPU
{A006F93A-A70D-4A0F-AA09-E08A001C5C0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A006F93A-A70D-4A0F-AA09-E08A001C5C0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A006F93A-A70D-4A0F-AA09-E08A001C5C0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A006F93A-A70D-4A0F-AA09-E08A001C5C0D}.Release|Any CPU.Build.0 = Release|Any CPU
{FC8C1E8A-A510-4EDE-9D1B-479EACAAB207}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FC8C1E8A-A510-4EDE-9D1B-479EACAAB207}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FC8C1E8A-A510-4EDE-9D1B-479EACAAB207}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FC8C1E8A-A510-4EDE-9D1B-479EACAAB207}.Release|Any CPU.Build.0 = Release|Any CPU
{07D6078C-1B44-4AD2-A042-AA679420E09B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{07D6078C-1B44-4AD2-A042-AA679420E09B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{07D6078C-1B44-4AD2-A042-AA679420E09B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07D6078C-1B44-4AD2-A042-AA679420E09B}.Release|Any CPU.Build.0 = Release|Any CPU
{8A29E2E6-D7B9-4862-965B-282C4824527B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A29E2E6-D7B9-4862-965B-282C4824527B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A29E2E6-D7B9-4862-965B-282C4824527B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8A29E2E6-D7B9-4862-965B-282C4824527B}.Release|Any CPU.Build.0 = Release|Any CPU
{E347F2F3-FF6A-46EA-B6A3-31334F626EF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E347F2F3-FF6A-46EA-B6A3-31334F626EF6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E347F2F3-FF6A-46EA-B6A3-31334F626EF6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E347F2F3-FF6A-46EA-B6A3-31334F626EF6}.Release|Any CPU.Build.0 = Release|Any CPU
{4EDEE8A2-D89D-4040-B786-5374C65E8074}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4EDEE8A2-D89D-4040-B786-5374C65E8074}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4EDEE8A2-D89D-4040-B786-5374C65E8074}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4EDEE8A2-D89D-4040-B786-5374C65E8074}.Release|Any CPU.Build.0 = Release|Any CPU
{F6B8840F-9F8C-4194-923F-BCF0BA1D9BF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F6B8840F-9F8C-4194-923F-BCF0BA1D9BF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F6B8840F-9F8C-4194-923F-BCF0BA1D9BF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F6B8840F-9F8C-4194-923F-BCF0BA1D9BF3}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{B4DB2B2D-6754-4B71-BC37-C8F1816646C1} = {2C104906-798F-4EEB-931C-F01600EA9F7F}
{013BD1E6-D607-4994-9EBE-2E9ED116AAC6} = {1DBC0DA8-2E80-4C0D-AB1F-A1E54CF304FF}
{B6CE638E-0175-4CEE-ABE7-D8E4A25B2328} = {95F6A9D4-42A9-483A-80F8-EADDD6CEFEDE}
{34F10592-77BF-47D5-B282-3E5856338F97} = {2C104906-798F-4EEB-931C-F01600EA9F7F}
{15DC4D19-A2D0-4624-B83E-12E6466F148C} = {1A69E6A7-33B3-4DAF-9D9D-FD7CD474FFD3}
{DF77A949-1A7A-4526-825D-5BF5CC5162E9} = {1A69E6A7-33B3-4DAF-9D9D-FD7CD474FFD3}
{2925BF23-5C16-42C3-97A0-9E0427F41D8F} = {1DBC0DA8-2E80-4C0D-AB1F-A1E54CF304FF}
{14B62AEE-0651-4CE3-B330-AB0E711719CE} = {1DBC0DA8-2E80-4C0D-AB1F-A1E54CF304FF}
{A006F93A-A70D-4A0F-AA09-E08A001C5C0D} = {2C104906-798F-4EEB-931C-F01600EA9F7F}
{FC8C1E8A-A510-4EDE-9D1B-479EACAAB207} = {95F6A9D4-42A9-483A-80F8-EADDD6CEFEDE}
{07D6078C-1B44-4AD2-A042-AA679420E09B} = {95F6A9D4-42A9-483A-80F8-EADDD6CEFEDE}
{8A29E2E6-D7B9-4862-965B-282C4824527B} = {1DBC0DA8-2E80-4C0D-AB1F-A1E54CF304FF}
{E347F2F3-FF6A-46EA-B6A3-31334F626EF6} = {95F6A9D4-42A9-483A-80F8-EADDD6CEFEDE}
{4EDEE8A2-D89D-4040-B786-5374C65E8074} = {95F6A9D4-42A9-483A-80F8-EADDD6CEFEDE}
{F6B8840F-9F8C-4194-923F-BCF0BA1D9BF3} = {95F6A9D4-42A9-483A-80F8-EADDD6CEFEDE}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {577CCEC3-4CDB-458A-B93D-F8579C2C3D8F}
EndGlobalSection
EndGlobal
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Mars")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Mars")]
[assembly: System.Reflection.AssemblyTitleAttribute("Mars")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\Mars.exe
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\Mars.deps.json
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\Mars.runtimeconfig.json
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\Mars.runtimeconfig.dev.json
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\Mars.dll
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\Mars.pdb
D:\Project\Galaxy\Mars\obj\Debug\netcoreapp3.0\Mars.csprojAssemblyReference.cache
D:\Project\Galaxy\Mars\obj\Debug\netcoreapp3.0\Mars.AssemblyInfoInputs.cache
D:\Project\Galaxy\Mars\obj\Debug\netcoreapp3.0\Mars.AssemblyInfo.cs
D:\Project\Galaxy\Mars\obj\Debug\netcoreapp3.0\Mars.dll
D:\Project\Galaxy\Mars\obj\Debug\netcoreapp3.0\Mars.pdb
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\Cdy.Tag.Common.dll
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\Cdy.Tag.dll
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\DataRunner.dll
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\DataRunner.pdb
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\Cdy.Tag.pdb
D:\Project\Galaxy\Mars\bin\Debug\netcoreapp3.0\Cdy.Tag.Common.pdb
D:\Project\Galaxy\Mars\obj\Debug\netcoreapp3.0\Mars.csproj.CopyComplete
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v3.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v3.0": {}
},
"libraries": {}
}
\ No newline at end of file
{
"runtimeOptions": {
"tfm": "netcoreapp3.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "3.0.0"
},
"additionalProbingPaths": [
"C:\\Users\\chongdaoyang\\.dotnet\\store\\|arch|\\|tfm|",
"C:\\Users\\chongdaoyang\\.nuget\\packages"
],
"configProperties": {
"Microsoft.NETCore.DotNetHostPolicy.SetAppPaths": true
}
}
}
\ No newline at end of file
{
"version": 1,
"dgSpecHash": "WYqF3nkZ/jNayDNmEJ3LOM4Hw7PKZAcy2Gp5d3QLBGjfPO3WiDUxtsZWlwEaNSlJeTgw0VDPMq5IwnPUCeJ37Q==",
"success": true
}
\ No newline at end of file
{
"format": 1,
"restore": {
"D:\\Project\\Galaxy\\Mars\\Mars.csproj": {}
},
"projects": {
"D:\\Project\\Galaxy\\Cdy.Tag.Common\\Cdy.Tag.Common.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Project\\Galaxy\\Cdy.Tag.Common\\Cdy.Tag.Common.csproj",
"projectName": "Cdy.Tag.Common",
"projectPath": "D:\\Project\\Galaxy\\Cdy.Tag.Common\\Cdy.Tag.Common.csproj",
"packagesPath": "C:\\Users\\chongdaoyang\\.nuget\\packages\\",
"outputPath": "D:\\Project\\Galaxy\\Cdy.Tag.Common\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\chongdaoyang\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\DevExpress 18.2.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netstandard2.0"
],
"sources": {
"C:\\Program Files (x86)\\DevExpress 18.2\\Components\\System\\Components\\Packages": {},
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netstandard2.0": {
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netstandard2.0": {
"dependencies": {
"NETStandard.Library": {
"suppressParent": "All",
"target": "Package",
"version": "[2.0.3, )",
"autoReferenced": true
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.101\\RuntimeIdentifierGraph.json"
}
}
},
"D:\\Project\\Galaxy\\Cdy.Tag\\Cdy.Tag.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Project\\Galaxy\\Cdy.Tag\\Cdy.Tag.csproj",
"projectName": "Cdy.Tag",
"projectPath": "D:\\Project\\Galaxy\\Cdy.Tag\\Cdy.Tag.csproj",
"packagesPath": "C:\\Users\\chongdaoyang\\.nuget\\packages\\",
"outputPath": "D:\\Project\\Galaxy\\Cdy.Tag\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\chongdaoyang\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\DevExpress 18.2.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netstandard2.0"
],
"sources": {
"C:\\Program Files (x86)\\DevExpress 18.2\\Components\\System\\Components\\Packages": {},
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netstandard2.0": {
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netstandard2.0": {
"dependencies": {
"NETStandard.Library": {
"suppressParent": "All",
"target": "Package",
"version": "[2.0.3, )",
"autoReferenced": true
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.101\\RuntimeIdentifierGraph.json"
}
}
},
"D:\\Project\\Galaxy\\DataRunner\\DBRuntime.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Project\\Galaxy\\DataRunner\\DBRuntime.csproj",
"projectName": "DBRuntime",
"projectPath": "D:\\Project\\Galaxy\\DataRunner\\DBRuntime.csproj",
"packagesPath": "C:\\Users\\chongdaoyang\\.nuget\\packages\\",
"outputPath": "D:\\Project\\Galaxy\\DataRunner\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\chongdaoyang\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\DevExpress 18.2.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netcoreapp3.1"
],
"sources": {
"C:\\Program Files (x86)\\DevExpress 18.2\\Components\\System\\Components\\Packages": {},
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netcoreapp3.1": {
"projectReferences": {
"D:\\Project\\Galaxy\\Cdy.Tag.Common\\Cdy.Tag.Common.csproj": {
"projectPath": "D:\\Project\\Galaxy\\Cdy.Tag.Common\\Cdy.Tag.Common.csproj"
},
"D:\\Project\\Galaxy\\Cdy.Tag\\Cdy.Tag.csproj": {
"projectPath": "D:\\Project\\Galaxy\\Cdy.Tag\\Cdy.Tag.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netcoreapp3.1": {
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.101\\RuntimeIdentifierGraph.json"
}
}
},
"D:\\Project\\Galaxy\\Mars\\Mars.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Project\\Galaxy\\Mars\\Mars.csproj",
"projectName": "Mars",
"projectPath": "D:\\Project\\Galaxy\\Mars\\Mars.csproj",
"packagesPath": "C:\\Users\\chongdaoyang\\.nuget\\packages\\",
"outputPath": "D:\\Project\\Galaxy\\Mars\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\chongdaoyang\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\DevExpress 18.2.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netcoreapp3.1"
],
"sources": {
"C:\\Program Files (x86)\\DevExpress 18.2\\Components\\System\\Components\\Packages": {},
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netcoreapp3.1": {
"projectReferences": {
"D:\\Project\\Galaxy\\DataRunner\\DBRuntime.csproj": {
"projectPath": "D:\\Project\\Galaxy\\DataRunner\\DBRuntime.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netcoreapp3.1": {
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.101\\RuntimeIdentifierGraph.json"
}
}
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\chongdaoyang\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">5.4.0</NuGetToolVersion>
</PropertyGroup>
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
</PropertyGroup>
</Project>
\ No newline at end of file
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Mars")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Mars")]
[assembly: System.Reflection.AssemblyTitleAttribute("Mars")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。
{
"version": 3,
"targets": {
".NETCoreApp,Version=v3.1": {
"Cdy.Tag/1.0.0": {
"type": "project",
"framework": ".NETStandard,Version=v2.1",
"dependencies": {
"Cdy.Tag.Common": "1.0.0"
},
"compile": {
"bin/placeholder/Cdy.Tag.dll": {}
},
"runtime": {
"bin/placeholder/Cdy.Tag.dll": {}
}
},
"Cdy.Tag.Common/1.0.0": {
"type": "project",
"framework": ".NETStandard,Version=v2.1",
"compile": {
"bin/placeholder/Cdy.Tag.Common.dll": {}
},
"runtime": {
"bin/placeholder/Cdy.Tag.Common.dll": {}
}
},
"Cdy.Tag.Driver/1.0.0": {
"type": "project",
"framework": ".NETStandard,Version=v2.1",
"dependencies": {
"Cdy.Tag": "1.0.0"
},
"compile": {
"bin/placeholder/Cdy.Tag.Driver.dll": {}
},
"runtime": {
"bin/placeholder/Cdy.Tag.Driver.dll": {}
}
},
"DBRuntime/1.0.0": {
"type": "project",
"framework": ".NETCoreApp,Version=v3.1",
"dependencies": {
"Cdy.Tag": "1.0.0",
"Cdy.Tag.Common": "1.0.0",
"Cdy.Tag.Driver": "1.0.0"
},
"compile": {
"bin/placeholder/DBRuntime.dll": {}
},
"runtime": {
"bin/placeholder/DBRuntime.dll": {}
}
},
"SimDriver/1.0.0": {
"type": "project",
"framework": ".NETCoreApp,Version=v3.1",
"dependencies": {
"Cdy.Tag.Driver": "1.0.0"
},
"compile": {
"bin/placeholder/SimDriver.dll": {}
},
"runtime": {
"bin/placeholder/SimDriver.dll": {}
}
}
}
},
"libraries": {
"Cdy.Tag/1.0.0": {
"type": "project",
"path": "../Cdy.Tag/Cdy.Tag.csproj",
"msbuildProject": "../Cdy.Tag/Cdy.Tag.csproj"
},
"Cdy.Tag.Common/1.0.0": {
"type": "project",
"path": "../Cdy.Tag.Common/Cdy.Tag.Common.csproj",
"msbuildProject": "../Cdy.Tag.Common/Cdy.Tag.Common.csproj"
},
"Cdy.Tag.Driver/1.0.0": {
"type": "project",
"path": "../Cdy.Tag.Driver/Cdy.Tag.Driver.csproj",
"msbuildProject": "../Cdy.Tag.Driver/Cdy.Tag.Driver.csproj"
},
"DBRuntime/1.0.0": {
"type": "project",
"path": "../DataRunner/DBRuntime.csproj",
"msbuildProject": "../DataRunner/DBRuntime.csproj"
},
"SimDriver/1.0.0": {
"type": "project",
"path": "../SimDriver/SimDriver.csproj",
"msbuildProject": "../SimDriver/SimDriver.csproj"
}
},
"projectFileDependencyGroups": {
".NETCoreApp,Version=v3.1": [
"DBRuntime >= 1.0.0",
"SimDriver >= 1.0.0"
]
},
"packageFolders": {
"C:\\Users\\chongdaoyang\\.nuget\\packages\\": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\Project\\Galaxy\\Mars\\DBInRun.csproj",
"projectName": "DBInRun",
"projectPath": "D:\\Project\\Galaxy\\Mars\\DBInRun.csproj",
"packagesPath": "C:\\Users\\chongdaoyang\\.nuget\\packages\\",
"outputPath": "D:\\Project\\Galaxy\\Mars\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\chongdaoyang\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\DevExpress .NET Core Desktop 19.2.config",
"C:\\Program Files (x86)\\NuGet\\Config\\DevExpress 19.2.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"netcoreapp3.1"
],
"sources": {
"C:\\Program Files (x86)\\DevExpress 19.2\\.NET Core Desktop Libraries\\System\\Components\\Packages": {},
"C:\\Program Files (x86)\\DevExpress 19.2\\Components\\System\\Components\\Packages": {},
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"netcoreapp3.1": {
"projectReferences": {
"D:\\Project\\Galaxy\\DataRunner\\DBRuntime.csproj": {
"projectPath": "D:\\Project\\Galaxy\\DataRunner\\DBRuntime.csproj"
},
"D:\\Project\\Galaxy\\SimDriver\\SimDriver.csproj": {
"projectPath": "D:\\Project\\Galaxy\\SimDriver\\SimDriver.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"netcoreapp3.1": {
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\3.1.101\\RuntimeIdentifierGraph.json"
}
}
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册