removing .NET framework based portable app in favor of .NET 5 portable app.

This commit is contained in:
Shreyas Zare
2020-12-06 17:22:38 +05:30
parent bf6f92b542
commit e77fe15a33
5 changed files with 0 additions and 316 deletions

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
</configuration>

View File

@@ -1,61 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{C166A19B-B533-45F8-813F-861DAB6D1865}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>DnsServerApp</RootNamespace>
<AssemblyName>DnsServerApp</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>logo2.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="TechnitiumLibrary.Net.Firewall">
<HintPath>..\..\TechnitiumLibrary\bin\TechnitiumLibrary.Net.Firewall.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DnsServerCore\DnsServerCore.csproj">
<Project>{4494b79b-588c-41f2-95ad-0897123af154}</Project>
<Name>DnsServerCore</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="logo2.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -1,213 +0,0 @@
/*
Technitium DNS Server
Copyright (C) 2020 Shreyas Zare (shreyas@technitium.com)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using DnsServerCore;
using System;
using System.Diagnostics;
using System.Reflection;
using System.Security.Principal;
using System.Threading;
using TechnitiumLibrary.Net.Firewall;
namespace DnsServerApp
{
class Program
{
static void Main(string[] args)
{
#region check windows firewall entry
string appPath = Assembly.GetEntryAssembly().Location;
if (!WindowsFirewallEntryExists(appPath))
{
bool isAdmin = new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
if (isAdmin)
{
AddWindowsFirewallEntry(appPath);
}
else
{
ProcessStartInfo processInfo = new ProcessStartInfo(appPath, string.Join(" ", args));
processInfo.UseShellExecute = true;
processInfo.Verb = "runas";
try
{
Process.Start(processInfo);
return;
}
catch
{ }
}
}
#endregion
string configFolder = null;
if (args.Length == 1)
configFolder = args[0];
EventWaitHandle waitHandle = new ManualResetEvent(false);
EventWaitHandle exitHandle = new ManualResetEvent(false);
WebService service = null;
try
{
service = new WebService(configFolder, new Uri("https://go.technitium.com/?id=20"));
service.Start();
Console.CancelKeyPress += delegate (object sender, ConsoleCancelEventArgs e)
{
e.Cancel = true;
waitHandle.Set();
};
AppDomain.CurrentDomain.ProcessExit += delegate (object sender, EventArgs e)
{
waitHandle.Set();
exitHandle.WaitOne();
};
Console.WriteLine("Technitium DNS Server was started successfully.");
Console.WriteLine("Using config folder: " + service.ConfigFolder);
Console.WriteLine("");
Console.WriteLine("Note: Open http://" + service.WebServiceHostname + ":" + service.WebServicePort + "/ in web browser to access web console.");
Console.WriteLine("");
Console.WriteLine("Press [CTRL + C] to stop...");
waitHandle.WaitOne();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
finally
{
Console.WriteLine("");
Console.WriteLine("Technitium DNS Server is stopping...");
if (service != null)
service.Dispose();
Console.WriteLine("Technitium DNS Server was stopped successfully.");
exitHandle.Set();
}
}
#region private
private static bool WindowsFirewallEntryExists(string appPath)
{
switch (Environment.OSVersion.Platform)
{
case PlatformID.Win32NT:
if (Environment.OSVersion.Version.Major > 5)
{
//vista and above
try
{
return WindowsFirewall.RuleExistsVista("", appPath) == RuleStatus.Allowed;
}
catch
{
return false;
}
}
else
{
try
{
return WindowsFirewall.ApplicationExists(appPath) == RuleStatus.Allowed;
}
catch
{
return false;
}
}
default:
return false;
}
}
private static bool AddWindowsFirewallEntry(string appPath)
{
switch (Environment.OSVersion.Platform)
{
case PlatformID.Win32NT:
if (Environment.OSVersion.Version.Major > 5)
{
//vista and above
try
{
RuleStatus status = WindowsFirewall.RuleExistsVista("", appPath);
switch (status)
{
case RuleStatus.Blocked:
case RuleStatus.Disabled:
WindowsFirewall.RemoveRuleVista("", appPath);
break;
case RuleStatus.Allowed:
return true;
}
WindowsFirewall.AddRuleVista("Technitium DNS Server", "Allow incoming connection request to the DNS server.", FirewallAction.Allow, appPath, Protocol.ANY, null, null, null, null, InterfaceTypeFlags.All, true, Direction.Inbound, true);
return true;
}
catch
{ }
}
else
{
try
{
RuleStatus status = WindowsFirewall.ApplicationExists(appPath);
switch (status)
{
case RuleStatus.Disabled:
WindowsFirewall.RemoveApplication(appPath);
break;
case RuleStatus.Allowed:
return true;
}
WindowsFirewall.AddApplication("Technitium DNS Server", appPath);
return true;
}
catch
{ }
}
break;
}
return false;
}
#endregion
}
}

View File

@@ -1,36 +0,0 @@
using System.Reflection;
using System.Runtime.CompilerServices;
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("Technitium DNS Server")]
[assembly: AssemblyDescription("Technitium DNS Server")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Technitium")]
[assembly: AssemblyProduct("Technitium DNS Server")]
[assembly: AssemblyCopyright("Copyright © 2020")]
[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.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("c166a19b-b533-45f8-813f-861dab6d1865")]
// 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("5.5.0.0")]
[assembly: AssemblyFileVersion("5.5.0.0")]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB