From fd3951e934dfcb4beda49661949f612db6241d90 Mon Sep 17 00:00:00 2001 From: Thad House Date: Thu, 31 Oct 2019 15:59:05 -0700 Subject: [PATCH 1/9] Work on adding cv streams for views --- DotNetDash.CameraViews/CsCameraView.xaml | 14 +++ DotNetDash.CameraViews/CsCameraView.xaml.cs | 98 +++++++++++++++++++ .../DotNetDash.CameraViews.csproj | 16 ++- DotNetDash.CameraViews/LocalCameraView.cs | 2 +- DotNetDash.CameraViews/LocalCsCameraView.cs | 47 +++++++++ DotNetDash.CameraViews/packages.config | 3 + DotNetDash/App.config | 21 ++-- DotNetDash/DotNetDash.csproj | 3 +- DotNetDash/Properties/Resources.Designer.cs | 44 ++++----- DotNetDash/Properties/Settings.Designer.cs | 2 +- 10 files changed, 209 insertions(+), 41 deletions(-) create mode 100644 DotNetDash.CameraViews/CsCameraView.xaml create mode 100644 DotNetDash.CameraViews/CsCameraView.xaml.cs create mode 100644 DotNetDash.CameraViews/LocalCsCameraView.cs diff --git a/DotNetDash.CameraViews/CsCameraView.xaml b/DotNetDash.CameraViews/CsCameraView.xaml new file mode 100644 index 0000000..3b67529 --- /dev/null +++ b/DotNetDash.CameraViews/CsCameraView.xaml @@ -0,0 +1,14 @@ + + + + + + diff --git a/DotNetDash.CameraViews/CsCameraView.xaml.cs b/DotNetDash.CameraViews/CsCameraView.xaml.cs new file mode 100644 index 0000000..a822e9b --- /dev/null +++ b/DotNetDash.CameraViews/CsCameraView.xaml.cs @@ -0,0 +1,98 @@ +using System; +using System.ComponentModel; +using System.IO; +using System.Runtime.CompilerServices; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media.Imaging; +using AForge.Video; + +namespace DotNetDash.CameraViews +{ + /// + /// Interaction logic for BaseCameraView.xaml + /// + public partial class CsCameraView : UserControl, INotifyPropertyChanged + { + public CsCameraView() + { + DataContext = this; + InitializeComponent(); + IsVisibleChanged += OnIsVisibleChanged; + } + + private void OnIsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) + { + var isVisible = (bool)e.NewValue; + if (isVisible) + CurrentDevice?.Start(); + else + CurrentDevice?.SignalToStop(); + } + + public IVideoSource currentDevice; + + public IVideoSource CurrentDevice + { + get + { + return currentDevice; + } + set + { + if (currentDevice != null) + { + currentDevice.NewFrame -= NewFrame; + currentDevice.Stop(); + } + currentDevice = value; + if (value != null) + { + value.NewFrame += NewFrame; + value.Start(); + } + } + } + + private void NewFrame(object sender, NewFrameEventArgs eventArgs) + { + var bitmap = eventArgs.Frame.Clone() as System.Drawing.Bitmap; + var previous = View; + Stream stream = unusedStream; + stream.Seek(0, SeekOrigin.Begin); + bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp); + stream.Seek(0, SeekOrigin.Begin); + bitmap.Dispose(); + + Dispatcher.Invoke(() => + { + var image = new BitmapImage(); + image.BeginInit(); + image.StreamSource = stream; + image.EndInit(); + View = image; + unusedStream = previous != null ? previous.StreamSource : new MemoryStream(); + }); + } + + private Stream unusedStream = new MemoryStream(); + private BitmapImage cameraView; + + public BitmapImage View + { + get { return cameraView; } + set + { + cameraView = value; + NotifyProperyChanged(); + } + } + + public event PropertyChangedEventHandler PropertyChanged; + + private void NotifyProperyChanged([CallerMemberName] string name = "") + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); + } + } +} diff --git a/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj b/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj index e677fff..7247968 100644 --- a/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj +++ b/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj @@ -9,8 +9,9 @@ Properties DotNetDash.CameraViews DotNetDash.CameraViews - v4.6 + v4.7.2 512 + true @@ -42,10 +43,22 @@ ..\packages\AForge.Video.DirectShow.2.2.5\lib\AForge.Video.DirectShow.dll True + + ..\..\cameraserver\src\FRC.CameraServer\bin\Debug\netstandard2.0\FRC.CameraServer.dll + + + ..\..\cameraserver\src\FRC.CameraServer.DesktopLibraries\bin\Debug\netstandard2.0\FRC.CameraServer.DesktopLibraries.dll + + + ..\..\cameraserver\src\FRC.CameraServer.OpenCvSharp\bin\Debug\netstandard2.0\FRC.CameraServer.OpenCvSharp.dll + ..\packages\FRC.NetworkTables.3.1.6\lib\net46\FRC.NetworkTables.dll True + + ..\packages\FRC.Utilities.0.0.3-beta\lib\netstandard2.0\FRC.Utilities.dll + ..\packages\Nito.AsyncEx.Coordination.1.0.2\lib\net46\Nito.AsyncEx.Coordination.dll True @@ -90,6 +103,7 @@ LocalCameraSelector.xaml + diff --git a/DotNetDash.CameraViews/LocalCameraView.cs b/DotNetDash.CameraViews/LocalCameraView.cs index 039cd96..64c7de5 100644 --- a/DotNetDash.CameraViews/LocalCameraView.cs +++ b/DotNetDash.CameraViews/LocalCameraView.cs @@ -3,7 +3,7 @@ namespace DotNetDash.CameraViews { - class LocalCameraView : CameraView + class LocalCameraView : CsCameraView { public LocalCameraView() { diff --git a/DotNetDash.CameraViews/LocalCsCameraView.cs b/DotNetDash.CameraViews/LocalCsCameraView.cs new file mode 100644 index 0000000..2e88730 --- /dev/null +++ b/DotNetDash.CameraViews/LocalCsCameraView.cs @@ -0,0 +1,47 @@ +using FRC.CameraServer; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; + +namespace DotNetDash.CameraViews +{ + public class LocalCsCameraView : CameraView + { + public LocalCsCameraView() + { + CameraSelector.Content = new LocalCameraSelector(); + } + + public UsbCameraInfo[] CameraDevices => UsbCamera.EnumerateUsbCameras(); + + public UsbCameraInfo? SelectedFilter + { + set + { + if (value == null) + { + CurrentDevice = null; + return; + } + ; + } + } + } + + sealed class LocalCsCameraViewProcessor : IViewProcessor + { + public FrameworkElement View { get; } = new LocalCsCameraView(); + } + + [CustomViewFactory(Name = "USB Camera")] + public class LocalCCameraViewProcessorFactory : IViewProcessorFactory + { + public IViewProcessor Create() + { + return new LocalCsCameraViewProcessor(); + } + } +} diff --git a/DotNetDash.CameraViews/packages.config b/DotNetDash.CameraViews/packages.config index f7fd9f0..3ad3003 100644 --- a/DotNetDash.CameraViews/packages.config +++ b/DotNetDash.CameraViews/packages.config @@ -4,8 +4,11 @@ + + + \ No newline at end of file diff --git a/DotNetDash/App.config b/DotNetDash/App.config index 71b0a59..3c5186b 100644 --- a/DotNetDash/App.config +++ b/DotNetDash/App.config @@ -1,22 +1,22 @@ - + - -
+ +
- + - + - - - + + + @@ -29,8 +29,7 @@ - + SmartDashboard LiveWindow CameraPublisher @@ -39,4 +38,4 @@ - \ No newline at end of file + diff --git a/DotNetDash/DotNetDash.csproj b/DotNetDash/DotNetDash.csproj index 3957422..8ddf56c 100644 --- a/DotNetDash/DotNetDash.csproj +++ b/DotNetDash/DotNetDash.csproj @@ -9,11 +9,12 @@ Properties DotNetDash DotNetDash - v4.6 + v4.7.2 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 true + AnyCPU diff --git a/DotNetDash/Properties/Resources.Designer.cs b/DotNetDash/Properties/Resources.Designer.cs index 25466b6..a964b04 100644 --- a/DotNetDash/Properties/Resources.Designer.cs +++ b/DotNetDash/Properties/Resources.Designer.cs @@ -8,10 +8,10 @@ // //------------------------------------------------------------------------------ -namespace DotNetDash.Properties -{ - - +namespace DotNetDash.Properties { + using System; + + /// /// A strongly-typed resource class, for looking up localized strings, etc. /// @@ -19,51 +19,43 @@ namespace DotNetDash.Properties // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [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 - { - + 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() - { + internal Resources() { } - + /// /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DotNetDash.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - + /// /// Overrides the current thread's CurrentUICulture property for all /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { + internal static global::System.Globalization.CultureInfo Culture { + get { return resourceCulture; } - set - { + set { resourceCulture = value; } } diff --git a/DotNetDash/Properties/Settings.Designer.cs b/DotNetDash/Properties/Settings.Designer.cs index 21fa367..7117fff 100644 --- a/DotNetDash/Properties/Settings.Designer.cs +++ b/DotNetDash/Properties/Settings.Designer.cs @@ -12,7 +12,7 @@ namespace DotNetDash.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")] public sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); From fde36ee374e0c908698aa35ea9fd7bae587e064f Mon Sep 17 00:00:00 2001 From: Thad House Date: Thu, 31 Oct 2019 15:59:27 -0700 Subject: [PATCH 2/9] Missed things --- DotNetDash.CameraViews/DotNetDash.CameraViews.csproj | 7 +++++++ DotNetDash.CameraViews/LocalCsCameraView.cs | 1 + 2 files changed, 8 insertions(+) diff --git a/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj b/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj index 7247968..cded19c 100644 --- a/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj +++ b/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj @@ -96,6 +96,9 @@ CameraInformationView.xaml + + CsCameraView.xaml + CameraView.xaml @@ -112,6 +115,10 @@ Designer MSBuild:Compile + + MSBuild:Compile + Designer + Designer MSBuild:Compile diff --git a/DotNetDash.CameraViews/LocalCsCameraView.cs b/DotNetDash.CameraViews/LocalCsCameraView.cs index 2e88730..0e969b0 100644 --- a/DotNetDash.CameraViews/LocalCsCameraView.cs +++ b/DotNetDash.CameraViews/LocalCsCameraView.cs @@ -26,6 +26,7 @@ public UsbCameraInfo? SelectedFilter CurrentDevice = null; return; } + ; } } From db6b7db52f43a07f203cce8ee3b31285491eea59 Mon Sep 17 00:00:00 2001 From: Thad House Date: Thu, 31 Oct 2019 16:59:48 -0700 Subject: [PATCH 3/9] Add support for CV images --- DotNetDash.CameraViews/BitmapSink.cs | 79 +++++++++++++++++++ DotNetDash.CameraViews/CsCameraView.xaml.cs | 20 ++--- DotNetDash.CameraViews/CsVideoSource.cs | 58 ++++++++++++++ .../DotNetDash.CameraViews.csproj | 38 +++++++++ DotNetDash.CameraViews/LocalCameraView.cs | 2 +- DotNetDash.CameraViews/LocalCsCameraView.cs | 10 ++- DotNetDash.CameraViews/WebCameraView.cs | 9 ++- DotNetDash.CameraViews/packages.config | 7 ++ 8 files changed, 208 insertions(+), 15 deletions(-) create mode 100644 DotNetDash.CameraViews/BitmapSink.cs create mode 100644 DotNetDash.CameraViews/CsVideoSource.cs diff --git a/DotNetDash.CameraViews/BitmapSink.cs b/DotNetDash.CameraViews/BitmapSink.cs new file mode 100644 index 0000000..dd46fef --- /dev/null +++ b/DotNetDash.CameraViews/BitmapSink.cs @@ -0,0 +1,79 @@ +using FRC.CameraServer; +using FRC.CameraServer.Interop; +using OpenCvSharp; +using OpenCvSharp.Extensions; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DotNetDash.CameraViews +{ + public class BitmapSink : ImageSink + { + private CS_RawFrame frame = new CS_RawFrame(); + Mat tmpMat; + unsafe byte* dataPtr; + int width; + int height; + int pixelFormat; + + private MatType GetCvFormat(PixelFormat format) + { + MatType type = MatType.CV_8UC1; + switch (format) + { + case PixelFormat.BGR: + type = MatType.CV_8UC3; + break; + case PixelFormat.YUYV: + case PixelFormat.RGB565: + type = MatType.CV_8UC2; + break; + } + return type; + } + + public BitmapSink(string name) + : base(CsCore.CreateRawSink(name.AsSpan())) + { + + } + + public long GrabFrame(ref Bitmap image) + { + return GrabFrame(ref image, .225); + } + + public unsafe long GrabFrame(ref Bitmap image, double timeout) + { + frame.width = 0; + frame.height = 0; + frame.pixelFormat = (int)PixelFormat.BGR; + + ulong rv = CsCore.GrabRawSinkFrameTimeout(Handle, ref frame, timeout); + if (rv == 0) return 0; + + var format = GetCvFormat((PixelFormat)frame.pixelFormat); + + if (dataPtr != frame.data || width != frame.width || height != frame.height || pixelFormat != frame.pixelFormat) + { + dataPtr = frame.data; + width = frame.width; + height = frame.height; + pixelFormat = frame.pixelFormat; + tmpMat = new Mat(frame.height, frame.width, format, (IntPtr)frame.data); + } + + if (image == null || image.Width != width || image.Height != height || image.PixelFormat != System.Drawing.Imaging.PixelFormat.Format24bppRgb) + { + image = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format24bppRgb); + } + + BitmapConverter.ToBitmap(tmpMat, image); + return (long)rv; + } + } +} diff --git a/DotNetDash.CameraViews/CsCameraView.xaml.cs b/DotNetDash.CameraViews/CsCameraView.xaml.cs index a822e9b..4dd5b1d 100644 --- a/DotNetDash.CameraViews/CsCameraView.xaml.cs +++ b/DotNetDash.CameraViews/CsCameraView.xaml.cs @@ -1,11 +1,14 @@ using System; using System.ComponentModel; +using System.Drawing; using System.IO; using System.Runtime.CompilerServices; using System.Windows; using System.Windows.Controls; using System.Windows.Media.Imaging; using AForge.Video; +using OpenCvSharp; +using OpenCvSharp.Extensions; namespace DotNetDash.CameraViews { @@ -21,18 +24,17 @@ public CsCameraView() IsVisibleChanged += OnIsVisibleChanged; } + volatile bool doUpdate = false; + private void OnIsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e) { var isVisible = (bool)e.NewValue; - if (isVisible) - CurrentDevice?.Start(); - else - CurrentDevice?.SignalToStop(); + doUpdate = isVisible; } - public IVideoSource currentDevice; + public CsVideoSource currentDevice; - public IVideoSource CurrentDevice + public CsVideoSource CurrentDevice { get { @@ -42,7 +44,6 @@ public IVideoSource CurrentDevice { if (currentDevice != null) { - currentDevice.NewFrame -= NewFrame; currentDevice.Stop(); } currentDevice = value; @@ -54,15 +55,14 @@ public IVideoSource CurrentDevice } } - private void NewFrame(object sender, NewFrameEventArgs eventArgs) + private void NewFrame(object sender, Bitmap bitmap) { - var bitmap = eventArgs.Frame.Clone() as System.Drawing.Bitmap; + if (!doUpdate) return; var previous = View; Stream stream = unusedStream; stream.Seek(0, SeekOrigin.Begin); bitmap.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp); stream.Seek(0, SeekOrigin.Begin); - bitmap.Dispose(); Dispatcher.Invoke(() => { diff --git a/DotNetDash.CameraViews/CsVideoSource.cs b/DotNetDash.CameraViews/CsVideoSource.cs new file mode 100644 index 0000000..f9cf16d --- /dev/null +++ b/DotNetDash.CameraViews/CsVideoSource.cs @@ -0,0 +1,58 @@ +using FRC.CameraServer; +using FRC.CameraServer.OpenCvSharp; +using OpenCvSharp; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace DotNetDash.CameraViews +{ + public class CsVideoSource + { + private Thread readThread; + private volatile bool isRunning = true; + private BitmapSink cvSink; + private Bitmap bitmap; + private VideoSource source; + + public event EventHandler NewFrame; + + public CsVideoSource(BitmapSink sink, VideoSource source) + { + cvSink = sink; + this.source = source; + } + + public void Start() + { + readThread = new Thread(ThreadMain); + readThread.IsBackground = true; + readThread.Start(); + } + + private void ThreadMain() + { + while (isRunning) + { + var ret = cvSink.GrabFrame(ref bitmap); + if (!isRunning) return; + if (ret == 0) continue; + + NewFrame?.Invoke(this, bitmap); + } + } + + public void Stop() + { + isRunning = false; + if (readThread != null) + { + readThread.Join(); + } + } + } +} diff --git a/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj b/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj index cded19c..5e72ed6 100644 --- a/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj +++ b/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj @@ -1,5 +1,6 @@  + Debug @@ -12,6 +13,8 @@ v4.7.2 512 + + true @@ -21,6 +24,7 @@ DEBUG;TRACE prompt 4 + true pdbonly @@ -29,6 +33,7 @@ TRACE prompt 4 + true @@ -75,12 +80,37 @@ ..\packages\Nito.Disposables.1.0.0\lib\portable45-net45+win8+wp8+wpa81\Nito.Disposables.dll True + + ..\packages\OpenCvSharp4.4.1.1.20191026\lib\net461\OpenCvSharp.dll + + + ..\packages\OpenCvSharp4.4.1.1.20191026\lib\net461\OpenCvSharp.Blob.dll + + + ..\packages\OpenCvSharp4.4.1.1.20191026\lib\net461\OpenCvSharp.Extensions.dll + + + ..\packages\OpenCvSharp4.4.1.1.20191026\lib\net461\OpenCvSharp.UserInterface.dll + + + ..\packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll + + + ..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll + + + + ..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll + @@ -102,6 +132,8 @@ CameraView.xaml + + LocalCameraSelector.xaml @@ -139,6 +171,12 @@ + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + \ No newline at end of file diff --git a/DotNetDash.CameraViews/Properties/AssemblyInfo.cs b/DotNetDash.CameraViews/Properties/AssemblyInfo.cs index e9d1386..3acc200 100644 --- a/DotNetDash.CameraViews/Properties/AssemblyInfo.cs +++ b/DotNetDash.CameraViews/Properties/AssemblyInfo.cs @@ -1,18 +1,6 @@ using System.Reflection; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DotNetDash.CameraViews")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DotNetDash.CameraViews")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. @@ -30,6 +18,4 @@ // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +// [assembly: AssemblyVersion("1.0.*")] \ No newline at end of file diff --git a/DotNetDash.Core/DotNetDash.Core.csproj b/DotNetDash.Core/DotNetDash.Core.csproj index 29eb3f2..e7e3ced 100644 --- a/DotNetDash.Core/DotNetDash.Core.csproj +++ b/DotNetDash.Core/DotNetDash.Core.csproj @@ -1,111 +1,17 @@ - - - + + - Debug - AnyCPU - {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB} - Library - Properties - DotNetDash - DotNetDash.Core - v4.7.2 - 512 - + netcoreapp3.1 + true + false - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - 4.1.2 - - - 4.1.1 - - - 1.0.0 - - - 2.9.0 - - - 4.5.0 - - - 4.5.0 - - - 4.7.0 - + + + + + - - + \ No newline at end of file diff --git a/DotNetDash.Core/NetworkTablesRoot.cs b/DotNetDash.Core/NetworkTablesRoot.cs index ab00abc..efa4d5a 100644 --- a/DotNetDash.Core/NetworkTablesRoot.cs +++ b/DotNetDash.Core/NetworkTablesRoot.cs @@ -10,7 +10,7 @@ namespace DotNetDash { - [Export] + [Export(typeof(NetworkTablesRoot))] public class NetworkTablesRoot : INotifyPropertyChanged { private IEnumerable> rootTableFactories; diff --git a/DotNetDash.Core/Properties/AssemblyInfo.cs b/DotNetDash.Core/Properties/AssemblyInfo.cs index ccafd08..b916e01 100644 --- a/DotNetDash.Core/Properties/AssemblyInfo.cs +++ b/DotNetDash.Core/Properties/AssemblyInfo.cs @@ -3,18 +3,6 @@ using System.Runtime.InteropServices; using System.Windows.Markup; -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DotNetDash.Core")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DotNetDash.Core")] -[assembly: AssemblyCopyright("Copyright © 2017")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. @@ -33,8 +21,6 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] [assembly: InternalsVisibleTo("DotNetDash.Test")] [assembly: XmlnsDefinition("https://robotdotnet.github.io/dotnetdash", nameof(DotNetDash))] diff --git a/DotNetDash.LiveWindow/DotNetDash.LiveWindow.csproj b/DotNetDash.LiveWindow/DotNetDash.LiveWindow.csproj index 70b6ae7..dbbca5e 100644 --- a/DotNetDash.LiveWindow/DotNetDash.LiveWindow.csproj +++ b/DotNetDash.LiveWindow/DotNetDash.LiveWindow.csproj @@ -1,97 +1,23 @@ - - - + + - Debug - AnyCPU - {BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E} - Library - Properties - DotNetDash.LiveWindow - DotNetDash.LiveWindow - v4.7.2 - 512 - - - - true - full - false - ..\bin\Debug\Plugins\LiveWindow\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - ..\bin\Release\Plugins\LiveWindow\ - TRACE - prompt - 4 + netcoreapp3.1 + true + false + - - - - - - - - - - - - - - - + + + - - - - + - - - - - - {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB} - DotNetDash.Core - False - - - - - 4.1.2 - - - 4.1.1 - - - 1.0.0 - - - 2.9.0 - - - 4.5.0 - - - 4.5.0 - - - 4.7.0 - - - - + \ No newline at end of file diff --git a/DotNetDash.LiveWindow/Properties/AssemblyInfo.cs b/DotNetDash.LiveWindow/Properties/AssemblyInfo.cs index 77bc45b..7ea0f27 100644 --- a/DotNetDash.LiveWindow/Properties/AssemblyInfo.cs +++ b/DotNetDash.LiveWindow/Properties/AssemblyInfo.cs @@ -1,18 +1,6 @@ using System.Reflection; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DotNetDash.LiveWindow")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DotNetDash.LiveWindow")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. @@ -21,15 +9,3 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("bda47db8-eb8e-43ad-a8a1-aad0ae9b2c8e")] -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/DotNetDash.SpeedController/DotNetDash.SpeedController.csproj b/DotNetDash.SpeedController/DotNetDash.SpeedController.csproj index 63f2d14..f4efe43 100644 --- a/DotNetDash.SpeedController/DotNetDash.SpeedController.csproj +++ b/DotNetDash.SpeedController/DotNetDash.SpeedController.csproj @@ -1,115 +1,23 @@ - - - + + - Debug - AnyCPU - {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC} - Library - Properties - DotNetDash.CANSpeedController - DotNetDash.CANSpeedController - v4.7.2 - 512 - + netcoreapp3.1 + true + false - - true - full - false - ..\bin\Debug\Plugins\SpeedController\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - ..\bin\Release\Plugins\SpeedController\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - - CANView.xaml - - - - - - - - SpeedControllerView.xaml - - - + - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - + + + + - - {8907117d-e11d-4f1d-8a26-7d0f1d8aceab} - DotNetDash.Core - False - + - - - - - - 4.1.2 - - - 4.1.1 - - - 2.0.0 - - - 4.5.0 - - - 4.5.0 - - - 4.7.0 - - - - + \ No newline at end of file diff --git a/DotNetDash.SpeedController/Properties/AssemblyInfo.cs b/DotNetDash.SpeedController/Properties/AssemblyInfo.cs index fe21e4e..517e5e3 100644 --- a/DotNetDash.SpeedController/Properties/AssemblyInfo.cs +++ b/DotNetDash.SpeedController/Properties/AssemblyInfo.cs @@ -1,18 +1,6 @@ using System.Reflection; using System.Runtime.InteropServices; -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DotNetDash.CANSpeedController")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DotNetDash.CANSpeedController")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. @@ -20,16 +8,3 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("b49b9a6f-a3ed-4ba9-a5a3-8ea783237dfc")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/DotNetDash.sln b/DotNetDash.sln index 700ad7d..e728944 100644 --- a/DotNetDash.sln +++ b/DotNetDash.sln @@ -1,9 +1,9 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29609.76 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetDash", "DotNetDash\DotNetDash.csproj", "{956D8251-A86B-4A80-8B99-5D356B6ED9FC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetDash", "DotNetDash\DotNetDash.csproj", "{956D8251-A86B-4A80-8B99-5D356B6ED9FC}" ProjectSection(ProjectDependencies) = postProject {75EFB940-7C2F-4535-9C6B-A6A3BC01622B} = {75EFB940-7C2F-4535-9C6B-A6A3BC01622B} {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC} = {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC} @@ -13,14 +13,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetDash", "DotNetDash\Do EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetDash.Test", "DotNetDash.Test\DotNetDash.Test.csproj", "{AEDD1D24-7E04-4A20-AD7F-9702FF2EDD62}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetDash.LiveWindow", "DotNetDash.LiveWindow\DotNetDash.LiveWindow.csproj", "{BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetDash.LiveWindow", "DotNetDash.LiveWindow\DotNetDash.LiveWindow.csproj", "{BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetDash.XamlPlugins", "DotNetDash.XamlPlugins\DotNetDash.XamlPlugins.proj", "{B9B7AAD7-C3E7-44AA-9DEF-58AFF8ACD713}" ProjectSection(ProjectDependencies) = postProject {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB} = {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB} EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetDash.CameraViews", "DotNetDash.CameraViews\DotNetDash.CameraViews.csproj", "{75EFB940-7C2F-4535-9C6B-A6A3BC01622B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetDash.CameraViews", "DotNetDash.CameraViews\DotNetDash.CameraViews.csproj", "{75EFB940-7C2F-4535-9C6B-A6A3BC01622B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C1E09CA6-E7D8-4BDB-AAE3-0D0D93F658BA}" ProjectSection(SolutionItems) = preProject @@ -28,9 +28,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution README.md = README.md EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetDash.SpeedController", "DotNetDash.SpeedController\DotNetDash.SpeedController.csproj", "{B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetDash.SpeedController", "DotNetDash.SpeedController\DotNetDash.SpeedController.csproj", "{B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetDash.Core", "DotNetDash.Core\DotNetDash.Core.csproj", "{8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotNetDash.Core", "DotNetDash.Core\DotNetDash.Core.csproj", "{8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -42,9 +42,10 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.CoreDebug|Any CPU.ActiveCfg = CoreDebug|Any CPU - {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.CoreDebug|Any CPU.Build.0 = CoreDebug|Any CPU - {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.CoreDebug|x86.ActiveCfg = CoreDebug|Any CPU + {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.CoreDebug|Any CPU.ActiveCfg = Debug|Any CPU + {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.CoreDebug|Any CPU.Build.0 = Debug|Any CPU + {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.CoreDebug|x86.ActiveCfg = Debug|Any CPU + {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.CoreDebug|x86.Build.0 = Debug|Any CPU {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Debug|Any CPU.Build.0 = Debug|Any CPU {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Debug|x86.ActiveCfg = Debug|Any CPU @@ -127,4 +128,7 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BA01FE9B-D93B-4B17-94CF-13C8C648389B} + EndGlobalSection EndGlobal diff --git a/DotNetDash/App.config b/DotNetDash/App.config index ba47026..3ad2557 100644 --- a/DotNetDash/App.config +++ b/DotNetDash/App.config @@ -5,11 +5,6 @@
- - - - - diff --git a/DotNetDash/App.xaml.cs b/DotNetDash/App.xaml.cs index ffc8be1..13d1d8b 100644 --- a/DotNetDash/App.xaml.cs +++ b/DotNetDash/App.xaml.cs @@ -24,7 +24,10 @@ protected override void OnExit(ExitEventArgs e) private static ComposablePartCatalog CreateExtensionCatalog() { if (!Directory.Exists("Plugins")) - return new AssemblyCatalog(typeof(App).Assembly); + { + return new AggregateCatalog(new AssemblyCatalog(typeof(App).Assembly), + new AssemblyCatalog(typeof(TableProcessor).Assembly)); + } var extensionRootDirectory = new DirectoryInfo("Plugins"); var catalog = new AggregateCatalog(from directory in extensionRootDirectory.EnumerateDirectories() select new DirectoryCatalog(directory.FullName)); diff --git a/DotNetDash/DotNetDash.csproj b/DotNetDash/DotNetDash.csproj index b70d85f..d8b960b 100644 --- a/DotNetDash/DotNetDash.csproj +++ b/DotNetDash/DotNetDash.csproj @@ -1,179 +1,29 @@ - - - + + - Debug - AnyCPU - {956D8251-A86B-4A80-8B99-5D356B6ED9FC} WinExe - Properties - DotNetDash - DotNetDash - v4.7.2 - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - true - + netcoreapp3.1 + true + false - - AnyCPU - true - full - false + + ..\bin\Debug\ - DEBUG;TRACE - prompt - 4 - - AnyCPU - pdbonly - true + + ..\bin\Release\ - TRACE - prompt - 4 - false - - true - bin\CoreDebug\ - DEBUG;TRACE - full - AnyCPU - prompt - MinimumRecommendedRules.ruleset - true - false - - - - - - - - - - - - - - - - 4.0 - - - - - - - - MSBuild:Compile - Designer - - - - - - RoboRioConnectionWindow.xaml - - - ServerConnectionWindow.xaml - - - - - - - MSBuild:Compile - Designer - - - App.xaml - Code - - - MainWindow.xaml - Code - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - - - Code - - - True - True - Resources.resx - - - True - Settings.settings - True - - - ResXFileCodeGenerator - Resources.Designer.cs - - - PublicSettingsSingleFileGenerator - Settings.Designer.cs - - - - - - + - - {8907117d-e11d-4f1d-8a26-7d0f1d8aceab} - DotNetDash.Core - + + + + + - - 4.1.2 - - - 4.1.1 - - - 1.0.0 - - - 2.9.0 - - - 2.2.2 - - - 4.5.0 - - - 4.5.0 - - - 4.7.0 - - - 2.0.20525 - + - - + \ No newline at end of file diff --git a/DotNetDash/Properties/AssemblyInfo.cs b/DotNetDash/Properties/AssemblyInfo.cs index e4824cd..37445f9 100644 --- a/DotNetDash/Properties/AssemblyInfo.cs +++ b/DotNetDash/Properties/AssemblyInfo.cs @@ -3,18 +3,6 @@ using System.Runtime.InteropServices; using System.Windows; -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DotNetDash")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DotNetDash")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. @@ -38,17 +26,3 @@ //(used if a resource is not found in the page, // app, or any theme specific resource dictionaries) )] - - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file From a8438b911b664d846200bb369a676ac28f1fc14b Mon Sep 17 00:00:00 2001 From: Thad House Date: Sat, 14 Dec 2019 13:34:54 -0800 Subject: [PATCH 9/9] Working on getting single file publishing working --- .../DotNetDash.CameraViews.csproj | 9 ++++-- DotNetDash.Core/DotNetDash.Core.csproj | 2 +- .../DotNetDash.LiveWindow.csproj | 8 ++++-- .../DotNetDash.SpeedController.csproj | 11 ++++++-- .../DotNetDash.XamlPlugins.proj | 3 ++ DotNetDash.sln | 28 +++++++++++++++++++ DotNetDash/DotNetDash.csproj | 20 +++++++++++++ 7 files changed, 73 insertions(+), 8 deletions(-) diff --git a/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj b/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj index fb2bfbe..d2b6082 100644 --- a/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj +++ b/DotNetDash.CameraViews/DotNetDash.CameraViews.csproj @@ -4,8 +4,8 @@ netcoreapp3.1 true true - false true + Debug;Release;Publish @@ -20,8 +20,13 @@ - + + + + + + \ No newline at end of file diff --git a/DotNetDash.Core/DotNetDash.Core.csproj b/DotNetDash.Core/DotNetDash.Core.csproj index e7e3ced..d6e9a9d 100644 --- a/DotNetDash.Core/DotNetDash.Core.csproj +++ b/DotNetDash.Core/DotNetDash.Core.csproj @@ -3,7 +3,7 @@ netcoreapp3.1 true - false + Debug;Release;Publish diff --git a/DotNetDash.LiveWindow/DotNetDash.LiveWindow.csproj b/DotNetDash.LiveWindow/DotNetDash.LiveWindow.csproj index dbbca5e..31b930b 100644 --- a/DotNetDash.LiveWindow/DotNetDash.LiveWindow.csproj +++ b/DotNetDash.LiveWindow/DotNetDash.LiveWindow.csproj @@ -3,7 +3,7 @@ netcoreapp3.1 true - false + Debug;Release;Publish @@ -16,8 +16,12 @@ - + + + + + \ No newline at end of file diff --git a/DotNetDash.SpeedController/DotNetDash.SpeedController.csproj b/DotNetDash.SpeedController/DotNetDash.SpeedController.csproj index f4efe43..9825788 100644 --- a/DotNetDash.SpeedController/DotNetDash.SpeedController.csproj +++ b/DotNetDash.SpeedController/DotNetDash.SpeedController.csproj @@ -3,7 +3,8 @@ netcoreapp3.1 true - false + Debug;Release;Publish + true @@ -16,8 +17,12 @@ - - + + + + + + \ No newline at end of file diff --git a/DotNetDash.XamlPlugins/DotNetDash.XamlPlugins.proj b/DotNetDash.XamlPlugins/DotNetDash.XamlPlugins.proj index dd35f76..85a4471 100644 --- a/DotNetDash.XamlPlugins/DotNetDash.XamlPlugins.proj +++ b/DotNetDash.XamlPlugins/DotNetDash.XamlPlugins.proj @@ -16,4 +16,7 @@ + + + \ No newline at end of file diff --git a/DotNetDash.sln b/DotNetDash.sln index e728944..aaf3e83 100644 --- a/DotNetDash.sln +++ b/DotNetDash.sln @@ -38,6 +38,8 @@ Global CoreDebug|x86 = CoreDebug|x86 Debug|Any CPU = Debug|Any CPU Debug|x86 = Debug|x86 + Publish|Any CPU = Publish|Any CPU + Publish|x86 = Publish|x86 Release|Any CPU = Release|Any CPU Release|x86 = Release|x86 EndGlobalSection @@ -49,6 +51,10 @@ Global {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Debug|Any CPU.Build.0 = Debug|Any CPU {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Debug|x86.ActiveCfg = Debug|Any CPU + {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Publish|Any CPU.ActiveCfg = Publish|Any CPU + {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Publish|Any CPU.Build.0 = Publish|Any CPU + {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Publish|x86.ActiveCfg = Publish|Any CPU + {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Publish|x86.Build.0 = Publish|Any CPU {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Release|Any CPU.ActiveCfg = Release|Any CPU {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Release|Any CPU.Build.0 = Release|Any CPU {956D8251-A86B-4A80-8B99-5D356B6ED9FC}.Release|x86.ActiveCfg = Release|Any CPU @@ -60,6 +66,8 @@ Global {AEDD1D24-7E04-4A20-AD7F-9702FF2EDD62}.Debug|Any CPU.Build.0 = Debug|Any CPU {AEDD1D24-7E04-4A20-AD7F-9702FF2EDD62}.Debug|x86.ActiveCfg = Debug|Any CPU {AEDD1D24-7E04-4A20-AD7F-9702FF2EDD62}.Debug|x86.Build.0 = Debug|Any CPU + {AEDD1D24-7E04-4A20-AD7F-9702FF2EDD62}.Publish|Any CPU.ActiveCfg = Release|Any CPU + {AEDD1D24-7E04-4A20-AD7F-9702FF2EDD62}.Publish|x86.ActiveCfg = Release|Any CPU {AEDD1D24-7E04-4A20-AD7F-9702FF2EDD62}.Release|Any CPU.ActiveCfg = Release|Any CPU {AEDD1D24-7E04-4A20-AD7F-9702FF2EDD62}.Release|Any CPU.Build.0 = Release|Any CPU {AEDD1D24-7E04-4A20-AD7F-9702FF2EDD62}.Release|x86.ActiveCfg = Release|Any CPU @@ -72,6 +80,10 @@ Global {BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}.Debug|Any CPU.Build.0 = Debug|Any CPU {BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}.Debug|x86.ActiveCfg = Debug|Any CPU {BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}.Debug|x86.Build.0 = Debug|Any CPU + {BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}.Publish|Any CPU.ActiveCfg = Publish|Any CPU + {BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}.Publish|Any CPU.Build.0 = Publish|Any CPU + {BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}.Publish|x86.ActiveCfg = Publish|Any CPU + {BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}.Publish|x86.Build.0 = Publish|Any CPU {BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}.Release|Any CPU.ActiveCfg = Release|Any CPU {BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}.Release|Any CPU.Build.0 = Release|Any CPU {BDA47DB8-EB8E-43AD-A8A1-AAD0AE9B2C8E}.Release|x86.ActiveCfg = Release|Any CPU @@ -84,6 +96,10 @@ Global {B9B7AAD7-C3E7-44AA-9DEF-58AFF8ACD713}.Debug|Any CPU.Build.0 = Debug|x86 {B9B7AAD7-C3E7-44AA-9DEF-58AFF8ACD713}.Debug|x86.ActiveCfg = Debug|x86 {B9B7AAD7-C3E7-44AA-9DEF-58AFF8ACD713}.Debug|x86.Build.0 = Debug|x86 + {B9B7AAD7-C3E7-44AA-9DEF-58AFF8ACD713}.Publish|Any CPU.ActiveCfg = Debug|x86 + {B9B7AAD7-C3E7-44AA-9DEF-58AFF8ACD713}.Publish|Any CPU.Build.0 = Debug|x86 + {B9B7AAD7-C3E7-44AA-9DEF-58AFF8ACD713}.Publish|x86.ActiveCfg = Debug|x86 + {B9B7AAD7-C3E7-44AA-9DEF-58AFF8ACD713}.Publish|x86.Build.0 = Debug|x86 {B9B7AAD7-C3E7-44AA-9DEF-58AFF8ACD713}.Release|Any CPU.ActiveCfg = Debug|x86 {B9B7AAD7-C3E7-44AA-9DEF-58AFF8ACD713}.Release|Any CPU.Build.0 = Debug|x86 {B9B7AAD7-C3E7-44AA-9DEF-58AFF8ACD713}.Release|x86.ActiveCfg = Debug|x86 @@ -96,6 +112,10 @@ Global {75EFB940-7C2F-4535-9C6B-A6A3BC01622B}.Debug|Any CPU.Build.0 = Debug|Any CPU {75EFB940-7C2F-4535-9C6B-A6A3BC01622B}.Debug|x86.ActiveCfg = Debug|Any CPU {75EFB940-7C2F-4535-9C6B-A6A3BC01622B}.Debug|x86.Build.0 = Debug|Any CPU + {75EFB940-7C2F-4535-9C6B-A6A3BC01622B}.Publish|Any CPU.ActiveCfg = Publish|Any CPU + {75EFB940-7C2F-4535-9C6B-A6A3BC01622B}.Publish|Any CPU.Build.0 = Publish|Any CPU + {75EFB940-7C2F-4535-9C6B-A6A3BC01622B}.Publish|x86.ActiveCfg = Release|Any CPU + {75EFB940-7C2F-4535-9C6B-A6A3BC01622B}.Publish|x86.Build.0 = Release|Any CPU {75EFB940-7C2F-4535-9C6B-A6A3BC01622B}.Release|Any CPU.ActiveCfg = Release|Any CPU {75EFB940-7C2F-4535-9C6B-A6A3BC01622B}.Release|Any CPU.Build.0 = Release|Any CPU {75EFB940-7C2F-4535-9C6B-A6A3BC01622B}.Release|x86.ActiveCfg = Release|Any CPU @@ -108,6 +128,10 @@ Global {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}.Debug|Any CPU.Build.0 = Debug|Any CPU {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}.Debug|x86.ActiveCfg = Debug|Any CPU {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}.Debug|x86.Build.0 = Debug|Any CPU + {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}.Publish|Any CPU.ActiveCfg = Publish|Any CPU + {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}.Publish|Any CPU.Build.0 = Publish|Any CPU + {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}.Publish|x86.ActiveCfg = Release|Any CPU + {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}.Publish|x86.Build.0 = Release|Any CPU {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}.Release|Any CPU.ActiveCfg = Release|Any CPU {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}.Release|Any CPU.Build.0 = Release|Any CPU {B49B9A6F-A3ED-4BA9-A5A3-8EA783237DFC}.Release|x86.ActiveCfg = Release|Any CPU @@ -120,6 +144,10 @@ Global {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}.Debug|Any CPU.Build.0 = Debug|Any CPU {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}.Debug|x86.ActiveCfg = Debug|Any CPU {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}.Debug|x86.Build.0 = Debug|Any CPU + {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}.Publish|Any CPU.ActiveCfg = Publish|Any CPU + {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}.Publish|Any CPU.Build.0 = Publish|Any CPU + {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}.Publish|x86.ActiveCfg = Release|Any CPU + {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}.Publish|x86.Build.0 = Release|Any CPU {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}.Release|Any CPU.ActiveCfg = Release|Any CPU {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}.Release|Any CPU.Build.0 = Release|Any CPU {8907117D-E11D-4F1D-8A26-7D0F1D8ACEAB}.Release|x86.ActiveCfg = Release|Any CPU diff --git a/DotNetDash/DotNetDash.csproj b/DotNetDash/DotNetDash.csproj index d8b960b..d140588 100644 --- a/DotNetDash/DotNetDash.csproj +++ b/DotNetDash/DotNetDash.csproj @@ -5,6 +5,13 @@ netcoreapp3.1 true false + Debug;Release;Publish + + + + ..\bin\Publish\ + true + win-x86 @@ -15,6 +22,7 @@ ..\bin\Release\ + @@ -26,4 +34,16 @@ + + + false + + + false + + + false + + + \ No newline at end of file