From f8af6e7d651dc4df483a90f1883fb87e811a74cf Mon Sep 17 00:00:00 2001 From: Serialcomms Date: Tue, 1 Aug 2023 10:49:46 +0100 Subject: [PATCH] New --- AUTO_FUNCTIONS/AUTO_FUNCTIONS.vbproj | 52 +++- AUTO_FUNCTIONS/Class1.vb | 3 - AUTO_FUNCTIONS/Functions.vb | 62 +++++ AUTO_FUNCTIONS/Installer.Designer.vb | 27 ++ AUTO_FUNCTIONS/Installer.vb | 157 +++++++++++ AUTO_FUNCTIONS/Interop.vb | 47 ++++ AUTO_FUNCTIONS/My Project/AssemblyInfo.vb | 14 +- .../My Project/Resources.Designer.vb | 25 +- .../My Project/Settings.Designer.vb | 54 ++-- AUTO_INSTALLER/AUTO_INSTALLER.vdproj | 244 +++++++++++++++++- Excel-Automation-AddIn-with-Installer.sln | 16 +- 11 files changed, 637 insertions(+), 64 deletions(-) delete mode 100644 AUTO_FUNCTIONS/Class1.vb create mode 100644 AUTO_FUNCTIONS/Functions.vb create mode 100644 AUTO_FUNCTIONS/Installer.Designer.vb create mode 100644 AUTO_FUNCTIONS/Installer.vb create mode 100644 AUTO_FUNCTIONS/Interop.vb diff --git a/AUTO_FUNCTIONS/AUTO_FUNCTIONS.vbproj b/AUTO_FUNCTIONS/AUTO_FUNCTIONS.vbproj index 89835a5..8ebe855 100644 --- a/AUTO_FUNCTIONS/AUTO_FUNCTIONS.vbproj +++ b/AUTO_FUNCTIONS/AUTO_FUNCTIONS.vbproj @@ -6,7 +6,7 @@ AnyCPU {6257C360-7481-43AF-9752-31F873D2A904} Library - AUTO_FUNCTIONS + Automation AUTO_FUNCTIONS 512 Windows @@ -21,6 +21,7 @@ bin\Debug\ AUTO_FUNCTIONS.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false pdbonly @@ -30,6 +31,7 @@ bin\Release\ AUTO_FUNCTIONS.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + false On @@ -43,8 +45,35 @@ On + + true + true + true + bin\x64\Debug\ + AUTO_FUNCTIONS.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + full + x64 + + + true + bin\x64\Release\ + AUTO_FUNCTIONS.xml + true + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + pdbonly + x64 + + + True + + + + True + + @@ -64,11 +93,19 @@ - + + + Installer.vb + + + Component + + True Application.myapp + True True @@ -100,5 +137,16 @@ Settings.Designer.vb + + + {00020813-0000-0000-C000-000000000046} + 1 + 9 + 0 + primary + False + True + + \ No newline at end of file diff --git a/AUTO_FUNCTIONS/Class1.vb b/AUTO_FUNCTIONS/Class1.vb deleted file mode 100644 index 875798b..0000000 --- a/AUTO_FUNCTIONS/Class1.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Class Class1 - -End Class diff --git a/AUTO_FUNCTIONS/Functions.vb b/AUTO_FUNCTIONS/Functions.vb new file mode 100644 index 0000000..d4d0e83 --- /dev/null +++ b/AUTO_FUNCTIONS/Functions.vb @@ -0,0 +1,62 @@ +Option Strict On +Option Explicit On +Option Compare Text +Imports System.Runtime.InteropServices + + + +Public Interface ICLASS_FUNCTIONS + Function IFX() As String + + Function TIMENOW() As String + +End Interface + + + + + +Public Class Functions + Implements ICLASS_FUNCTIONS + +#Region "COM GUIDs" + ' These GUIDs provide the COM identity for this class and its COM interfaces. + ' If you change them, existing clients will no longer be able to access the class. + + Public Const ClassId As String = "df32904d-DEAD-BEEF-9352-5dc0ceafa03e" + Public Const EventsId As String = "ca59b115-DEAD-BEEF-8375-a8f652d3258f" + Public Const InterfaceId As String = "6c409593-DEAD-BEEF-8c16-f3804714e174" +#End Region + + ' A creatable COM class must have a Public Sub New() with no parameters, otherwise, the + ' class will not be registered in the COM registry and cannot be created via CreateObject. + Public Sub New() + + MyBase.New() + + End Sub + + Private Function IFX() As String Implements ICLASS_FUNCTIONS.IFX + + Return "AUTO FX OK" + + End Function + Private Function TIMENOW() As String Implements ICLASS_FUNCTIONS.TIMENOW + + EXCEL.Volatile() + + Dim DT As Date + + Dim TimeString As String + + DT = Now + + TimeString = DT.ToLongTimeString.ToString() & "." & DT.Millisecond.ToString("D3") + + Return TimeString + + End Function + +End Class + + diff --git a/AUTO_FUNCTIONS/Installer.Designer.vb b/AUTO_FUNCTIONS/Installer.Designer.vb new file mode 100644 index 0000000..f10112c --- /dev/null +++ b/AUTO_FUNCTIONS/Installer.Designer.vb @@ -0,0 +1,27 @@ + Partial Class Installer + Inherits System.Configuration.Install.Installer + + 'Installer overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Component Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Component Designer + 'It can be modified using the Component Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + components = New System.ComponentModel.Container() + End Sub + +End Class diff --git a/AUTO_FUNCTIONS/Installer.vb b/AUTO_FUNCTIONS/Installer.vb new file mode 100644 index 0000000..c38f14f --- /dev/null +++ b/AUTO_FUNCTIONS/Installer.vb @@ -0,0 +1,157 @@ +Imports Microsoft.Win32 +Imports System.Reflection +Imports System.Runtime.InteropServices +Imports System.Runtime.Remoting.Contexts + + + +Public Class Installer + + Public ASSEMBLY_TYPE As Type + Public ASSEMBLY_GUID As String + Public ASSEMBLY_NAME As Assembly + Public ASSEMBLY_KEYNAME As String + Public ASSEMBLY_DISPLAY_NAME As String + Public REGISTRATION_SERVICES As RegistrationServices + + Public Sub New() + + MyBase.New() + + InitializeComponent() 'This call is required by the Component Designer. + + 'Add initialization code after the call to InitializeComponent + + ASSEMBLY_TYPE = GetType(Functions) + ASSEMBLY_GUID = Functions.ClassId.ToUpper + ASSEMBLY_NAME = GetType(Functions).Assembly + ASSEMBLY_KEYNAME = "CLSID\{" & ASSEMBLY_GUID & "}\" + ASSEMBLY_DISPLAY_NAME = ASSEMBLY_NAME.FullName + REGISTRATION_SERVICES = New RegistrationServices + + End Sub + + Public Overrides Sub Install(stateSaver As IDictionary) + + MyBase.Install(stateSaver) + + REGISTER_ASSEMBLY() + + UPDATE_REGISTRY_KEYS() + + End Sub + + Public Overrides Sub Commit(savedState As IDictionary) + + MyBase.Commit(savedState) + + End Sub + + Public Overrides Sub Rollback(savedState As IDictionary) + + MyBase.Rollback(savedState) + + End Sub + + Public Overrides Sub Uninstall(savedState As IDictionary) + + MyBase.Uninstall(savedState) + + REMOVE_REGISTRY_KEY() + + UNREGISTER_ASSEMBLY() + + End Sub + + Public Sub REGISTER_ASSEMBLY() + + Try + + REGISTRATION_SERVICES.RegisterAssembly(ASSEMBLY_NAME, AssemblyRegistrationFlags.SetCodeBase) + + Catch ex As Exception + + Dim BOXTEXT As String = Nothing + BOXTEXT &= "Assembly Name = " & ASSEMBLY_DISPLAY_NAME & vbCrLf + BOXTEXT &= "Assembly GUID = " & ASSEMBLY_GUID & vbCrLf + BOXTEXT &= "Message = " & ex.Message + + MsgBox(BOXTEXT, vbCritical + vbOKOnly, " Error Registering Assembly") + + End Try + + End Sub + + Public Sub UPDATE_REGISTRY_KEYS() + + Dim SetKey As RegistryKey = Nothing + + Try + + Registry.ClassesRoot.CreateSubKey(ASSEMBLY_KEYNAME & "Programmable") + + SetKey = Registry.ClassesRoot.OpenSubKey(ASSEMBLY_KEYNAME & "InprocServer32", True) + + SetKey.SetValue("", Environment.SystemDirectory & "\mscoree.dll", RegistryValueKind.String) + + ' Environment.SystemDirectory = auto 32/64 bit + + Registry.ClassesRoot.Close() + + Catch ex As Exception + + Dim BOXTEXT As String = Nothing + BOXTEXT &= "Assembly Name = " & ASSEMBLY_DISPLAY_NAME & vbCrLf + BOXTEXT &= "Assembly GUID = " & ASSEMBLY_GUID & vbCrLf + BOXTEXT &= "Registry Key = " & SetKey.ToString & vbCrLf + BOXTEXT &= "Message = " & ex.Message + + MsgBox(BOXTEXT, vbCritical + vbOKOnly, " Error updating registry") + + End Try + + + End Sub + + Public Sub REMOVE_REGISTRY_KEY() + + Try + + Registry.ClassesRoot.DeleteSubKey(ASSEMBLY_KEYNAME & "Programmable") + + Registry.ClassesRoot.Flush() + + Catch ex As Exception + + Dim BOXTEXT As String = Nothing + BOXTEXT &= "Assembly Name = " & ASSEMBLY_DISPLAY_NAME & vbCrLf + BOXTEXT &= "Assembly GUID = " & ASSEMBLY_GUID & vbCrLf + BOXTEXT &= "Registry SubKey = " & ASSEMBLY_KEYNAME & "Programmable" + BOXTEXT &= "Message = " & ex.Message + + MsgBox(BOXTEXT, vbCritical + vbOKOnly, " Error deleting subkey") + + End Try + + End Sub + + Public Sub UNREGISTER_ASSEMBLY() + + Try + + REGISTRATION_SERVICES.UnregisterAssembly(ASSEMBLY_NAME) + + Catch ex As Exception + + Dim BOXTEXT As String = Nothing + BOXTEXT &= "Assembly Name = " & ASSEMBLY_DISPLAY_NAME & vbCrLf + BOXTEXT &= "Assembly GUID = " & ASSEMBLY_GUID & vbCrLf + BOXTEXT &= "Message = " & ex.Message + + MsgBox(BOXTEXT, vbCritical + vbOKOnly, " Error UnRegistering Assembly") + + End Try + + End Sub + +End Class diff --git a/AUTO_FUNCTIONS/Interop.vb b/AUTO_FUNCTIONS/Interop.vb new file mode 100644 index 0000000..11d6c26 --- /dev/null +++ b/AUTO_FUNCTIONS/Interop.vb @@ -0,0 +1,47 @@ +Imports Extensibility +Imports Microsoft.Office.Interop + +Partial Public Class Functions + Implements IDTExtensibility2 + + Private EXCEL As Excel.Application + + Public Sub OnConnection(Application As Object, ConnectMode As ext_ConnectMode, AddInInst As Object, ByRef custom As Array) Implements IDTExtensibility2.OnConnection + + If TypeOf Application Is Excel.Application Then + + EXCEL = Application + + Else + + Throw New NotImplementedException() + + End If + + End Sub + Public Sub OnDisconnection(RemoveMode As ext_DisconnectMode, ByRef custom As Array) Implements IDTExtensibility2.OnDisconnection + + Throw New NotImplementedException() + + End Sub + + Public Sub OnAddInsUpdate(ByRef custom As Array) Implements IDTExtensibility2.OnAddInsUpdate + + Throw New NotImplementedException() + + End Sub + + Public Sub OnStartupComplete(ByRef custom As Array) Implements IDTExtensibility2.OnStartupComplete + + Throw New NotImplementedException() + + End Sub + + Public Sub OnBeginShutdown(ByRef custom As Array) Implements IDTExtensibility2.OnBeginShutdown + + Throw New NotImplementedException() + + End Sub + +End Class + diff --git a/AUTO_FUNCTIONS/My Project/AssemblyInfo.vb b/AUTO_FUNCTIONS/My Project/AssemblyInfo.vb index a256d85..b8966b0 100644 --- a/AUTO_FUNCTIONS/My Project/AssemblyInfo.vb +++ b/AUTO_FUNCTIONS/My Project/AssemblyInfo.vb @@ -8,17 +8,17 @@ Imports System.Runtime.InteropServices ' Review the values of the assembly attributes - - - - - - + + + + + + 'The following GUID is for the ID of the typelib if this project is exposed to COM - + ' Version information for an assembly consists of the following four values: ' diff --git a/AUTO_FUNCTIONS/My Project/Resources.Designer.vb b/AUTO_FUNCTIONS/My Project/Resources.Designer.vb index fe4b92c..206b343 100644 --- a/AUTO_FUNCTIONS/My Project/Resources.Designer.vb +++ b/AUTO_FUNCTIONS/My Project/Resources.Designer.vb @@ -11,6 +11,7 @@ Option Strict On Option Explicit On +Imports System Namespace My.Resources @@ -21,40 +22,40 @@ Namespace My.Resources ''' ''' A strongly-typed resource class, for looking up localized strings, etc. ''' - _ + _ Friend Module Resources - + Private resourceMan As Global.System.Resources.ResourceManager - + Private resourceCulture As Global.System.Globalization.CultureInfo - + ''' ''' Returns the cached ResourceManager instance used by this class. ''' - _ + _ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager Get If Object.ReferenceEquals(resourceMan, Nothing) Then - Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("AUTO_FUNCTIONS.Resources", GetType(Resources).Assembly) + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Automation.Resources", GetType(Resources).Assembly) resourceMan = temp End If Return resourceMan End Get End Property - + ''' ''' Overrides the current thread's CurrentUICulture property for all ''' resource lookups using this strongly typed resource class. ''' - _ + _ Friend Property Culture() As Global.System.Globalization.CultureInfo Get Return resourceCulture End Get - Set(ByVal value As Global.System.Globalization.CultureInfo) + Set resourceCulture = value End Set End Property diff --git a/AUTO_FUNCTIONS/My Project/Settings.Designer.vb b/AUTO_FUNCTIONS/My Project/Settings.Designer.vb index 8c15217..1bb6e60 100644 --- a/AUTO_FUNCTIONS/My Project/Settings.Designer.vb +++ b/AUTO_FUNCTIONS/My Project/Settings.Designer.vb @@ -13,42 +13,42 @@ Option Explicit On Namespace My - - _ + + _ Partial Friend NotInheritable Class MySettings Inherits Global.System.Configuration.ApplicationSettingsBase - - Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) - + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + #Region "My.Settings Auto-Save Functionality" #If _MyType = "WindowsForms" Then - Private Shared addedHandler As Boolean + Private Shared addedHandler As Boolean - Private Shared addedHandlerLockObject As New Object + Private Shared addedHandlerLockObject As New Object - _ - Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) - If My.Application.SaveMySettingsOnExit Then - My.Settings.Save() - End If - End Sub + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub #End If #End Region - + Public Shared ReadOnly Property [Default]() As MySettings Get - + #If _MyType = "WindowsForms" Then - If Not addedHandler Then - SyncLock addedHandlerLockObject - If Not addedHandler Then - AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings - addedHandler = True - End If - End SyncLock - End If + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If #End If Return defaultInstance End Get @@ -64,9 +64,9 @@ Namespace My Friend Module MySettingsProperty _ - Friend ReadOnly Property Settings() As Global.AUTO_FUNCTIONS.My.MySettings + Friend ReadOnly Property Settings() As Global.Automation.My.MySettings Get - Return Global.AUTO_FUNCTIONS.My.MySettings.Default + Return Global.Automation.My.MySettings.Default End Get End Property End Module diff --git a/AUTO_INSTALLER/AUTO_INSTALLER.vdproj b/AUTO_INSTALLER/AUTO_INSTALLER.vdproj index c64c04d..592abcf 100644 --- a/AUTO_INSTALLER/AUTO_INSTALLER.vdproj +++ b/AUTO_INSTALLER/AUTO_INSTALLER.vdproj @@ -4,15 +4,51 @@ "ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}" "IsWebType" = "8:FALSE" "ProjectName" = "8:AUTO_INSTALLER" -"LanguageId" = "3:1033" +"LanguageId" = "3:0" "CodePage" = "3:1252" -"UILanguageId" = "3:1033" +"UILanguageId" = "3:0" "SccProjectName" = "8:" "SccLocalPath" = "8:" "SccAuxPath" = "8:" "SccProvider" = "8:" "Hierarchy" { + "Entry" + { + "MsmKey" = "8:_6C25993ED0995D691AA9BE29E32772F0" + "OwnerKey" = "8:_A4AB9B77F10B457E96501FC28419B00C" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_A4AB9B77F10B457E96501FC28419B00C" + "OwnerKey" = "8:_UNDEFINED" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_CF0ED240DA22E00545571F0BAE20282D" + "OwnerKey" = "8:_A4AB9B77F10B457E96501FC28419B00C" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_6C25993ED0995D691AA9BE29E32772F0" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_A4AB9B77F10B457E96501FC28419B00C" + "MsmSig" = "8:_UNDEFINED" + } + "Entry" + { + "MsmKey" = "8:_UNDEFINED" + "OwnerKey" = "8:_CF0ED240DA22E00545571F0BAE20282D" + "MsmSig" = "8:_UNDEFINED" + } } "Configurations" { @@ -31,6 +67,22 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2" + { + "Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)" + "ProductCode" = "8:.NETFramework,Version=v4.7.2" + } + } + } } "Release" { @@ -47,12 +99,88 @@ "PrivateKeyFile" = "8:" "TimeStampServer" = "8:" "InstallerBootstrapper" = "3:2" + "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}" + { + "Enabled" = "11:TRUE" + "PromptEnabled" = "11:TRUE" + "PrerequisitesLocation" = "2:1" + "Url" = "8:" + "ComponentsUrl" = "8:" + "Items" + { + "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.7.2" + { + "Name" = "8:Microsoft .NET Framework 4.7.2 (x86 and x64)" + "ProductCode" = "8:.NETFramework,Version=v4.7.2" + } + } + } } } "Deployable" { "CustomAction" { + "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_2B0BB63FBC434FA199EEEC856AC4DD08" + { + "Name" = "8:Primary output from AUTO_FUNCTIONS (Active) [64-Bit]" + "Condition" = "8:" + "Object" = "8:_A4AB9B77F10B457E96501FC28419B00C" + "FileType" = "3:1" + "InstallAction" = "3:2" + "Arguments" = "8:" + "EntryPoint" = "8:" + "Sequence" = "3:1" + "Identifier" = "8:_870B0ADC_1997_424C_B76B_1DA012F3C898" + "InstallerClass" = "11:TRUE" + "CustomActionData" = "8:" + "Run64Bit" = "11:TRUE" + } + "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_4A9B117490F5471DA0A60BA97C9222FC" + { + "Name" = "8:Primary output from AUTO_FUNCTIONS (Active) [64-Bit]" + "Condition" = "8:" + "Object" = "8:_A4AB9B77F10B457E96501FC28419B00C" + "FileType" = "3:1" + "InstallAction" = "3:1" + "Arguments" = "8:" + "EntryPoint" = "8:" + "Sequence" = "3:1" + "Identifier" = "8:_5D743976_0D24_481A_ACB8_131461105A7E" + "InstallerClass" = "11:TRUE" + "CustomActionData" = "8:" + "Run64Bit" = "11:TRUE" + } + "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_83143E6C4E834C4DA69B562220329823" + { + "Name" = "8:Primary output from AUTO_FUNCTIONS (Active) [64-Bit]" + "Condition" = "8:" + "Object" = "8:_A4AB9B77F10B457E96501FC28419B00C" + "FileType" = "3:1" + "InstallAction" = "3:3" + "Arguments" = "8:" + "EntryPoint" = "8:" + "Sequence" = "3:1" + "Identifier" = "8:_8DDBED9D_B16A_4FAB_AE2E_C93AD68E14B6" + "InstallerClass" = "11:TRUE" + "CustomActionData" = "8:" + "Run64Bit" = "11:TRUE" + } + "{4AA51A2D-7D85-4A59-BA75-B0809FC8B380}:_EB9D31C1FCDC4806BF14485A31C2DAB7" + { + "Name" = "8:Primary output from AUTO_FUNCTIONS (Active) [64-Bit]" + "Condition" = "8:" + "Object" = "8:_A4AB9B77F10B457E96501FC28419B00C" + "FileType" = "3:1" + "InstallAction" = "3:4" + "Arguments" = "8:" + "EntryPoint" = "8:" + "Sequence" = "3:1" + "Identifier" = "8:_425008F3_AF18_4FB2_BAD9_2B546B6EA9D9" + "InstallerClass" = "11:TRUE" + "CustomActionData" = "8:" + "Run64Bit" = "11:TRUE" + } } "DefaultFeature" { @@ -64,10 +192,80 @@ { "LaunchCondition" { + "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_C28EB7476E9D43F4A3C20C2874E0BCB7" + { + "Name" = "8:.NET Framework" + "Message" = "8:[VSDNETMSG]" + "FrameworkVersion" = "8:.NETFramework,Version=v4.7.2" + "AllowLaterVersions" = "11:FALSE" + "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=863262" + } } } "File" { + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_6C25993ED0995D691AA9BE29E32772F0" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" + "ScatterAssemblies" + { + "_6C25993ED0995D691AA9BE29E32772F0" + { + "Name" = "8:System.Net.Http.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:System.Net.Http.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_91CF9AD7FBE04F51B0DB57A03475B8E9" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } + "{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_CF0ED240DA22E00545571F0BAE20282D" + { + "AssemblyRegister" = "3:1" + "AssemblyIsInGAC" = "11:FALSE" + "AssemblyAsmDisplayName" = "8:Microsoft.VisualStudio.Tools.Applications.Runtime, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" + "ScatterAssemblies" + { + "_CF0ED240DA22E00545571F0BAE20282D" + { + "Name" = "8:Microsoft.VisualStudio.Tools.Applications.Runtime.dll" + "Attributes" = "3:512" + } + } + "SourcePath" = "8:Microsoft.VisualStudio.Tools.Applications.Runtime.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_91CF9AD7FBE04F51B0DB57A03475B8E9" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:TRUE" + "IsolateTo" = "8:" + } } "FileType" { @@ -87,7 +285,7 @@ } "{3C67513D-01DD-4637-8A68-80971EB9504F}:_91CF9AD7FBE04F51B0DB57A03475B8E9" { - "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]" + "DefaultLocation" = "8:[ProgramFiles64Folder][Manufacturer]\\[ProductName]" "Name" = "8:#1925" "AlwaysCreate" = "11:FALSE" "Condition" = "8:" @@ -117,15 +315,15 @@ } "MsiBootstrapper" { - "LangId" = "3:1033" + "LangId" = "3:0" "RequiresElevation" = "11:FALSE" } "Product" { "Name" = "8:Microsoft Visual Studio" - "ProductName" = "8:AUTO_INSTALLER" + "ProductName" = "8:Automation FX" "ProductCode" = "8:{48EB93FA-B6ED-4595-B526-AF0B5014D92A}" - "PackageCode" = "8:{53EAE0AF-50FA-40FA-B3E8-C368011BDB82}" + "PackageCode" = "8:{81BAF973-BC47-4F6C-991E-514802BEA863}" "UpgradeCode" = "8:{BDA3B63B-9619-4B59-AC9F-4FE76615EFB3}" "AspNetVersion" = "8:" "RestartWWWService" = "11:FALSE" @@ -133,12 +331,12 @@ "DetectNewerInstalledVersion" = "11:TRUE" "InstallAllUsers" = "11:FALSE" "ProductVersion" = "8:1.0.0" - "Manufacturer" = "8:Default Company Name" + "Manufacturer" = "8:YourCompany" "ARPHELPTELEPHONE" = "8:" "ARPHELPLINK" = "8:" "Title" = "8:AUTO_INSTALLER" "Subject" = "8:" - "ARPCONTACT" = "8:Default Company Name" + "ARPCONTACT" = "8:YourCompany" "Keywords" = "8:" "ARPCOMMENTS" = "8:" "ARPURLINFOABOUT" = "8:" @@ -146,7 +344,7 @@ "ARPIconIndex" = "3:0" "SearchPath" = "8:" "UseSystemSearchPath" = "11:TRUE" - "TargetPlatform" = "3:0" + "TargetPlatform" = "3:1" "PreBuildEvent" = "8:" "PostBuildEvent" = "8:" "RunPostBuildEvent" = "3:0" @@ -644,6 +842,34 @@ } "ProjectOutput" { + "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A4AB9B77F10B457E96501FC28419B00C" + { + "SourcePath" = "8:..\\AUTO_FUNCTIONS\\obj\\Release\\AUTO_FUNCTIONS.dll" + "TargetName" = "8:" + "Tag" = "8:" + "Folder" = "8:_91CF9AD7FBE04F51B0DB57A03475B8E9" + "Condition" = "8:" + "Transitive" = "11:FALSE" + "Vital" = "11:TRUE" + "ReadOnly" = "11:FALSE" + "Hidden" = "11:FALSE" + "System" = "11:FALSE" + "Permanent" = "11:FALSE" + "SharedLegacy" = "11:FALSE" + "PackageAs" = "3:1" + "Register" = "3:1" + "Exclude" = "11:FALSE" + "IsDependency" = "11:FALSE" + "IsolateTo" = "8:" + "ProjectOutputGroupRegister" = "3:1" + "OutputConfiguration" = "8:" + "OutputGroupCanonicalName" = "8:Built" + "OutputProjectGuid" = "8:{6257C360-7481-43AF-9752-31F873D2A904}" + "ShowKeyOutput" = "11:TRUE" + "ExcludeFilters" + { + } + } } } } diff --git a/Excel-Automation-AddIn-with-Installer.sln b/Excel-Automation-AddIn-with-Installer.sln index 172d5f1..5372aa4 100644 --- a/Excel-Automation-AddIn-with-Installer.sln +++ b/Excel-Automation-AddIn-with-Installer.sln @@ -10,15 +10,23 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6257C360-7481-43AF-9752-31F873D2A904}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6257C360-7481-43AF-9752-31F873D2A904}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6257C360-7481-43AF-9752-31F873D2A904}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {6257C360-7481-43AF-9752-31F873D2A904}.Debug|x64.ActiveCfg = Debug|Any CPU + {6257C360-7481-43AF-9752-31F873D2A904}.Debug|x64.Build.0 = Debug|Any CPU {6257C360-7481-43AF-9752-31F873D2A904}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6257C360-7481-43AF-9752-31F873D2A904}.Release|Any CPU.Build.0 = Release|Any CPU - {5FCC3A88-0757-428D-8577-FFA6C0744FD7}.Debug|Any CPU.ActiveCfg = Debug + {6257C360-7481-43AF-9752-31F873D2A904}.Release|x64.ActiveCfg = Release|x64 + {6257C360-7481-43AF-9752-31F873D2A904}.Release|x64.Build.0 = Release|x64 + {5FCC3A88-0757-428D-8577-FFA6C0744FD7}.Debug|Any CPU.ActiveCfg = Release + {5FCC3A88-0757-428D-8577-FFA6C0744FD7}.Debug|x64.ActiveCfg = Debug + {5FCC3A88-0757-428D-8577-FFA6C0744FD7}.Debug|x64.Build.0 = Debug {5FCC3A88-0757-428D-8577-FFA6C0744FD7}.Release|Any CPU.ActiveCfg = Release + {5FCC3A88-0757-428D-8577-FFA6C0744FD7}.Release|x64.ActiveCfg = Release + {5FCC3A88-0757-428D-8577-FFA6C0744FD7}.Release|x64.Build.0 = Release EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE