Skip to content

Commit 557a524

Browse files
committed
Initial revision of build process for .NET 7 application.
1 parent 5000f9c commit 557a524

File tree

5 files changed

+193
-103
lines changed

5 files changed

+193
-103
lines changed

BuildRemote.cmd

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,16 @@ msbuild /t:rebuild /p:configuration=Debug;Platform="Any CPU"
1414

1515
cd %RemoteDirectory%
1616
@echo Building Release AnyCPU in directory %cd%
17-
msbuild /t:rebuild /p:configuration=Release;Platform="Any CPU"
17+
msbuild /t:rebuild /p:configuration=Release;Platform="Any CPU"
18+
19+
cd %RemoteDirectory%
20+
rmdir /s /q "publish"
21+
@echo Publishing ASCOM Remote x86
22+
dotnet publish "remote server\remote server.csproj" --runtime win-x86 --self-contained -p:publishsinglefile=true -o publish\x86
23+
@echo Publishing ASCOM Remote x64
24+
dotnet publish "remote server\remote server.csproj" --runtime win-x64 --self-contained -p:publishsinglefile=true -o publish\x64
25+
26+
echo *** Creating Windows installer
27+
rem cd Setup
28+
rem "C:\Program Files (x86)\Inno Script Studio\isstudio.exe" -compile "J:\ConformU\Setup\ASCOM Remote Setup.iss"
29+
rem cd ..

Remote Server/Remote Server.csproj

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<OutputType>WinExe</OutputType>
44
<RootNamespace>ASCOM.Remote</RootNamespace>
5-
<AssemblyName>ASCOM.RemoteServer</AssemblyName>
5+
<AssemblyName>RemoteServer</AssemblyName>
66
<TargetFramework>net7.0-windows</TargetFramework>
77
<UseWindowsForms>true</UseWindowsForms>
88
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
@@ -70,7 +70,7 @@
7070
</PropertyGroup>
7171
<PropertyGroup>
7272
<SignAssembly>True</SignAssembly>
73-
<PlatformTarget>x86</PlatformTarget>
73+
<PlatformTarget>AnyCPU</PlatformTarget>
7474
</PropertyGroup>
7575
<ItemGroup>
7676
<Compile Update="DriverHostForm.cs" />
@@ -104,12 +104,14 @@
104104
</EmbeddedResource>
105105
</ItemGroup>
106106
<ItemGroup>
107-
<Content Include="ASCOM.ico" />
107+
<Content Include="ASCOM.ico">
108+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
109+
</Content>
108110
<Content Include="ASCOMAlpacaMidRes.jpg">
109111
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
110112
</Content>
111113
<Content Include="ascomicon.ico">
112-
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
114+
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
113115
</Content>
114116
</ItemGroup>
115117
<ItemGroup>

Setup/ASCOM Remote Setup.iss

Lines changed: 126 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,179 @@
11
;
2-
; Script to install the ASCOM Remote Drivers and ASCOM Remote Server
2+
; Script to install the ASCOM Remote Server
33
;
44

55
; Install direrctory names
6-
#define public RemoteClientDirectory "{app}\RemoteClients" ; Target directory where remote clients will be installed
76
#define public RemoteServerDirectory "{commonpf}\ASCOM\Remote" ; Target directory where the remote server will be installed
87

98
; Install file names
10-
#define public RemoteClientLocalServerName "ASCOM.RemoteClientLocalServer" ; Remote client local server name
11-
#define public RemoteServerName "ASCOM.RemoteServer" ; Remote server application name
12-
#define public ASCOMStandardName "ASCOMStandard" ; ASCOMStandard support DLL name
9+
#define public RemoteServerName "RemoteServer" ; Remote server application name
1310
#define public SetNetworkPermissionsName "ASCOM.SetNetworkPermissions" ; Firewall configuration application name
14-
#define public DynamicRemoteClientsName "ASCOM.DynamicRemoteClients" ; Remote client management application name
15-
#define public RemoteClientBaseClassesName "ASCOM.RemoteClientBaseClasses" ; Remote client support DLL name
1611
#define public ASCOMRemoteDocumentationFileName "ASCOM Remote Installation and Configuration.pdf"; ASCOM Remote documentation file
1712

13+
#define MyAppName "ASCOM Remote"
14+
#define MyAppPublisher "ASCOM Initiative (Peter Simpson)"
15+
#define MyAppPublisherURL "https://ascom-standards.org"
16+
#define MyAppSupportURL "URL=https://ascomtalk.groups.io/g/Developer/topics"
17+
#define MyAppUpdatesURL "https://github.com/ASCOMInitiative/ASCOMRemote/releases"
18+
#define MyAppExeName "RemoteServer.exe"
19+
#define MyAppAuthor "Peter Simpson"
20+
#define MyAppCopyright "Copyright © 2023 " + MyAppAuthor
21+
#define MyAppVersion GetVersionNumbersString("..\publish\x64\ASCOM.Remote.exe") ; Create version number variable
22+
23+
24+
1825
; Specifiy debug or release build;#define public BuildType "Debug" ; Type of build - Release or Debug
1926
#define public BuildType "Release" ; Type of build - Release or Debug
2027

2128
[Setup]
2229
AppID={{0ee690ae-7927-4ee7-b851-f5877c077ff5}
23-
#define MyAppVer GetVersionNumbersString("..\Remote Server\bin\Release\ASCOM.RemoteServer.exe") ; define variable
24-
25-
AppName=ASCOM Remote
26-
AppCopyright=Copyright © 2021 ASCOM Initiative
27-
AppPublisher=ASCOM Initiative
28-
AppPublisherURL=mailto:peter@peterandjill.co.uk
29-
AppSupportURL=https://ascomtalk.groups.io/g/Help/topics
30-
AppUpdatesURL=https://github.com/ASCOMInitiative/ASCOMRemote/releases
31-
#emit "AppVerName=ASCOM Remote " + MyAppVer + " ("+ BuildType + ")"
32-
#emit "AppVersion=" + MyAppVer
33-
Compression=lzma
34-
DefaultDirName="{commoncf}\ASCOM"
35-
DefaultGroupName="ASCOM Remote"
36-
DisableDirPage=yes
37-
DisableProgramGroupPage=no
38-
; Must be at least Windows 7 SP1 or later to run
30+
AppCopyright={#MyAppCopyright}
31+
AppName={#MyAppName}
32+
AppPublisher={#MyAppPublisher}
33+
AppPublisherURL={#MyAppPublisherURL}
34+
AppSupportURL={#MyAppSupportURL}
35+
AppUpdatesURL={#MyAppUpdatesURL}
36+
AppVerName={#MyAppName}
37+
AppVersion={#MyAppVersion}
38+
ArchitecturesInstallIn64BitMode=x64
39+
Compression = lzma
40+
41+
DefaultDirName={autopf}\ASCOM\RemoteServer
42+
DefaultGroupName=ASCOM Remote
3943
MinVersion=6.1SP1
40-
OutputDir="Build"
41-
#emit "OutputBaseFilename=ASCOMRemote(" + MyAppVer +")setup"
44+
DisableProgramGroupPage=yes
45+
OutputBaseFilename=ASCOMRemote({#MyAppVersion})Setup
46+
OutputDir=.\Builds
4247
PrivilegesRequired=admin
4348
SetupIconFile=ASCOM.ico
4449
SetupLogging=true
50+
;ShowLanguageDialog=auto
4551
SolidCompression=yes
46-
UninstallDisplayIcon={commonpf}\ASCOM\Remote\ASCOM.ico
47-
UninstallFilesDir="{commoncf}\ASCOM\Uninstall\Remote"
48-
UsePreviousAppDir=no
49-
UsePreviousGroup=no
50-
VersionInfoCompany=Peter Simpson
51-
VersionInfoCopyright=Peter Simpson
52-
VersionInfoDescription=ASCOM Remote
53-
VersionInfoProductName=ASCOM Remote
52+
UninstallDisplayName=
53+
UninstallDisplayIcon={app}\{#MyAppExeName}
54+
VersionInfoCompany=ASCOM Initiative
55+
VersionInfoCopyright={#MyAppAuthor}
56+
VersionInfoDescription= {#MyAppName}
57+
VersionInfoProductName={#MyAppName}
58+
VersionInfoProductVersion= {#MyAppVersion}
59+
VersionInfoVersion={#MyAppVersion}
5460
WizardImageFile=NewWizardImage.bmp
5561
WizardSmallImageFile=ASCOMLogo.bmp
56-
#emit "VersionInfoProductVersion=" + MyAppVer
57-
#emit "VersionInfoVersion=" + MyAppVer
62+
WizardStyle=modern
63+
SignToolRunMinimized=yes
5864
SignTool = SignASCOMRemote
5965

66+
67+
68+
69+
70+
;DefaultDirName = "{commoncf}\ASCOM"
71+
;DefaultGroupName = "ASCOM Remote"
72+
;DisableDirPage = yes
73+
;DisableProgramGroupPage = no
74+
; Must be at least Windows 7 SP1 or later to run
75+
;MinVersion = 6.1SP1
76+
;OutputDir = "Build"
77+
;#emit "OutputBaseFilename = ASCOMRemote(" + MyAppVer +")setup"
78+
;PrivilegesRequired = admin
79+
;SetupIconFile = ASCOM.ico
80+
;SetupLogging = true
81+
;SolidCompression = yes
82+
;UninstallDisplayIcon = {commonpf}\ASCOM\Remote\ASCOM.ico
83+
;UninstallFilesDir = "{commoncf}\ASCOM\Uninstall\Remote"
84+
;UsePreviousAppDir = no
85+
;UsePreviousGroup = no
86+
;VersionInfoCompany = Peter Simpson
87+
;VersionInfoCopyright = Peter Simpson
88+
;VersionInfoDescription = ASCOM Remote
89+
;VersionInfoProductName = ASCOM Remote
90+
;WizardImageFile = NewWizardImage.bmp
91+
;WizardSmallImageFile = ASCOMLogo.bmp
92+
;WizardStyle = modern
93+
;#emit "VersionInfoProductVersion = " + MyAppVer
94+
;#emit "VersionInfoVersion = " + MyAppVer
95+
;SignTool = SignASCOMRemote
96+
;SignToolRunMinimized = yes
97+
6098
[Languages]
6199
Name: "english"; MessagesFile: "compiler:Default.isl"
62100

63101
[Files]
102+
; 64bit OS - Install the 64bit app
103+
Source: "..\publish\x64\*.exe"; DestDir: "{app}\64bit"; Flags: ignoreversion signonce; Check: Is64BitInstallMode
104+
Source: "..\publish\x64\*.dll"; DestDir: "{app}\64bit"; Flags: ignoreversion signonce; Check: Is64BitInstallMode
105+
Source: "..\publish\x64\*"; DestDir: "{app}\64bit"; Flags: ignoreversion; Excludes:"*.exe,*.dll"; Check: Is64BitInstallMode
106+
107+
; 64bit OS - Install the 32bit app
108+
Source: "..\publish\x86\*.exe"; DestDir: "{app}\32bit"; Flags: ignoreversion signonce; Check: Is64BitInstallMode
109+
Source: "..\publish\x86\*.dll"; DestDir: "{app}\32bit"; Flags: ignoreversion signonce; Check: Is64BitInstallMode
110+
Source: "..\publish\x86\*"; DestDir: "{app}\32bit"; Flags: ignoreversion; Excludes:"*.exe,*.dll"; Check: Is64BitInstallMode
111+
112+
; 32bit OS - Install the 32bit app
113+
Source: "..\publish\x86\*.exe"; DestDir: "{app}"; Flags: ignoreversion signonce; Check: not Is64BitInstallMode
114+
Source: "..\publish\x86\*.dll"; DestDir: "{app}"; Flags: ignoreversion signonce; Check: not Is64BitInstallMode
115+
Source: "..\publish\x86\*"; DestDir: "{app}"; Flags: ignoreversion; Excludes:"*.exe,*.dll"; Check: not Is64BitInstallMode
116+
117+
; DOCUMENTATION
118+
Source: "..\Documentation\{#ASCOMRemoteDocumentationFileName}"; DestDir: "{app}"; Flags: ignoreversion
119+
120+
[Icons]
121+
; 64bit OS
122+
Name: "{autoprograms}\ASCOM Remote Server"; Filename: "{app}\64bit\{#MyAppExeName}"; IconFilename: "{app}\64bit\ASCOM.ico"; Check: Is64BitInstallMode
123+
; Name: "{autodesktop}\Remote Server"; Filename: "{app}\64bit\ASCOM.RemoteServer"; Tasks: desktopicon; IconFilename: "{app}\64bit\ASCOM.ico"; Check: Is64BitInstallMode
124+
125+
;32bit OS
126+
Name: "{autoprograms}\ASCOM Remote Server"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}\ASCOM.ico"; Check: not Is64BitInstallMode
127+
;Name: "{autodesktop}\Remote Server"; Filename: "{app}\ASCOM.RemoteServer"; Tasks: desktopicon; IconFilename: "{app}\ASCOM.ico"; Check: not Is64BitInstallMode
128+
129+
;Name: "{group}\ASCOM Remote Documentation"; Filename: "{#RemoteServerDirectory}\{#ASCOMRemoteDocumentationFileName}";
130+
;Name: "{group}\Remote Server"; Filename: "{#RemoteServerDirectory}\{#RemoteServerName}.exe"; Components: ServerComponents
131+
132+
133+
134+
135+
136+
64137
; REMOTE SERVER FILES
65-
Source: "..\Remote Server\bin\{#BuildType}\{#RemoteServerName}.exe"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
66-
Source: "..\Remote Server\bin\{#BuildType}\{#RemoteServerName}.exe.config"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
67-
Source: "..\Remote Server\bin\{#BuildType}\{#RemoteServerName}.pdb"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
68-
Source: "..\Remote Server\ASCOMAlpacaMidRes.jpg"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
69-
Source: "..\Remote Server\ascomicon.ico"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
138+
;Source: "..\Remote Server\bin\{#BuildType}\{#RemoteServerName}.exe"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
139+
;Source: "..\Remote Server\bin\{#BuildType}\{#RemoteServerName}.exe.config"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
140+
;Source: "..\Remote Server\bin\{#BuildType}\{#RemoteServerName}.pdb"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
141+
;Source: "..\Remote Server\ASCOMAlpacaMidRes.jpg"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
142+
;Source: "..\Remote Server\ascomicon.ico"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
70143

71144
; REMOTE SERVER SUPPORT FILES
72-
Source: "..\Remote Server\bin\{#BuildType}\Newtonsoft.Json.dll"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
73-
Source: "..\Remote Server\bin\{#BuildType}\ASCOM.Common.dll"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
145+
;Source: "..\Remote Server\bin\{#BuildType}\Newtonsoft.Json.dll"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
146+
;Source: "..\Remote Server\bin\{#BuildType}\ASCOM.Common.dll"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
74147

75148
; SET NETWORK PERMISSIONS FILES
76-
Source: "..\SetNetworkPermissions\bin\{#BuildType}\{#SetNetworkPermissionsName}.exe"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
77-
Source: "..\SetNetworkPermissions\bin\{#BuildType}\{#SetNetworkPermissionsName}.pdb"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
149+
;Source: "..\SetNetworkPermissions\bin\{#BuildType}\{#SetNetworkPermissionsName}.exe"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
150+
;Source: "..\SetNetworkPermissions\bin\{#BuildType}\{#SetNetworkPermissionsName}.pdb"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
78151

79152
; SET NETWORK PERMISSIONS SUPPORT FILES
80-
Source: "..\SetNetworkPermissions\bin\{#BuildType}\WindowsFirewallHelper.dll"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
81-
Source: "..\SetNetworkPermissions\bin\{#BuildType}\CommandLine.dll"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
153+
;Source: "..\SetNetworkPermissions\bin\{#BuildType}\WindowsFirewallHelper.dll"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
154+
;Source: "..\SetNetworkPermissions\bin\{#BuildType}\CommandLine.dll"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion; Components: ServerComponents
82155

83156
; DOCUMENTATION
84-
Source: "..\Documentation\{#ASCOMRemoteDocumentationFileName}"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion
157+
;Source: "..\Documentation\{#ASCOMRemoteDocumentationFileName}"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion
85158

86159
; INSTALLER SUPPORT FILES
87-
Source: "ASCOM.ico"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion
160+
;Source: "ASCOM.ico"; DestDir: "{#RemoteServerDirectory}"; Flags: ignoreversion
88161

89162
[Run]
90163

91164
[UninstallRun]
92165

93166
[Registry]
94167

95-
[Icons]
96-
Name: "{group}\ASCOM Remote Documentation"; Filename: "{#RemoteServerDirectory}\{#ASCOMRemoteDocumentationFileName}";
97-
Name: "{group}\Remote Server"; Filename: "{#RemoteServerDirectory}\{#RemoteServerName}.exe"; Components: ServerComponents
168+
;[Icons]
169+
;Name: "{group}\ASCOM Remote Documentation"; Filename: "{#RemoteServerDirectory}\{#ASCOMRemoteDocumentationFileName}";
170+
;Name: "{group}\Remote Server"; Filename: "{#RemoteServerDirectory}\{#RemoteServerName}.exe"; Components: ServerComponents
98171

99172
[Components]
100-
Name: "ServerComponents"; Description: "Remote Server"; Flags: disablenouninstallwarning
173+
;Name: "ServerComponents"; Description: "Remote Server"; Flags: disablenouninstallwarning
101174

102175
[Types]
103-
Name: "Custom"; Description: "Custom"; Flags: iscustom
104-
105-
[PreCompile]
106-
Name: "..\BuildRemote.cmd"; Flags: cmdprompt
176+
;Name: "Custom"; Description: "Custom"; Flags: iscustom
107177

108178
[Code]
109179
const

Setup/Builds/ASCOMRemote()Setup.exe

89.1 MB
Binary file not shown.

0 commit comments

Comments
 (0)