diff --git a/PowerDataOps.psd1 b/PowerDataOps.psd1
index e8d477e..e9a8501 100644
--- a/PowerDataOps.psd1
+++ b/PowerDataOps.psd1
@@ -1,6 +1,6 @@
@{
RootModule = 'PowerDataOps'
- ModuleVersion = '2.0.0.5'
+ ModuleVersion = '2.0.0.6'
GUID = 'bfa11058-d4b5-4300-b74a-cdc3d9560389'
Author = 'Aymeric Mouillé'
CompanyName = 'Unknown'
diff --git a/src/Assemblies/CoreTools/CrmSvcUtil.exe b/src/Assemblies/CoreTools/CrmSvcUtil.exe
new file mode 100644
index 0000000..d48f991
Binary files /dev/null and b/src/Assemblies/CoreTools/CrmSvcUtil.exe differ
diff --git a/src/Assemblies/CoreTools/CrmSvcUtil.exe.config b/src/Assemblies/CoreTools/CrmSvcUtil.exe.config
new file mode 100644
index 0000000..fd836a7
--- /dev/null
+++ b/src/Assemblies/CoreTools/CrmSvcUtil.exe.config
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Assemblies/CoreTools/CrmSvcUtil.xml b/src/Assemblies/CoreTools/CrmSvcUtil.xml
new file mode 100644
index 0000000..ab2ecbc
--- /dev/null
+++ b/src/Assemblies/CoreTools/CrmSvcUtil.xml
@@ -0,0 +1,1699 @@
+
+
+
+ CrmSvcUtil
+
+
+
+
+ Command Line Properties for the CrmSvcUtil Instance.
+
+
+
+
+ Suppresses the GeneratedCodeAttribute on all classes.
+
+
+
+
+ Suppresses the banner.
+
+
+
+
+ The language to use for the generated proxy code. This can be either 'CS' or 'VB'. The default language is 'CS'.
+
+
+
+
+ A url or path to the SDK endpoint to contact for metadata
+
+
+
+
+ The filename for the generated proxy code
+
+
+
+
+ The namespace for the generated proxy code. The default namespace is the global namespace.
+
+
+
+
+ Used to raise the interactive dialog to login.
+
+
+
+
+ Used to create a connection utilizing a passed in connection string.
+
+
+
+
+ Used to login via OAuth to Dataverse, Hidden for initial ship... but here to allow for complex auth situations.
+
+
+
+
+ Username to use when connecting to the server for authentication.
+
+
+
+
+ Password to use when connecting to the server for authentication.
+
+
+
+
+ Domain to authenticate against when connecting to the server.
+
+
+
+
+ The name for the generated service context. If a value is passed in, it will be used for the Service Context. If not, no Service Context will be generated
+
+
+
+
+ Namespace of messages to generate.
+
+
+
+
+ Show this usage message.
+
+
+
+
+ Full name of the type to use as the ICustomizeCodeDomService
+
+
+
+
+ Full name of the type to use as the ICodeWriterFilterService
+
+
+
+
+ Full name of the type to use as the ICodeWriterMessageFilterService
+
+
+
+
+ Full name of the type to use as the IMetadataProviderService
+
+
+
+
+ Full name of the type to use as the IMetaDataProviderQueryService
+
+
+
+
+ Full name of the type to use as the ICodeGenerationService
+
+
+
+
+ Full name of the type to use as the INamingService
+
+
+
+
+ Generate unsupported classes
+
+
+
+
+ Generate wrapper classes for custom actions
+
+
+
+
+ Generate messages
+
+
+
+
+ Generate Field Constants for entities
+
+
+
+
+ Provides a means to provide a filtered list of entities.
+
+
+
+
+ Provides a means to provide a filtered list of entities.
+
+
+
+
+ Askes the system to emit a file per type.
+
+
+
+
+ Sets the output directory for files when split files are setup
+
+
+
+
+ Sets the folder name for Entity files.
+
+
+
+
+ Sets the folder name for Messages files.
+
+
+
+
+ Sets the folder name for OptionSets files.
+
+
+
+
+ If set, Causes Global optionsets to be read from the server and emitted.
+
+
+
+
+ if Set, Causes the system to behave as the CrmServiceUtil did pre Feb/2022.
+
+
+
+
+ Used by devToolkit to set the Connection profile to use for this call.
+
+
+
+
+ Used by the devToolkit to set the appName whos connection is being used.
+
+
+
+
+ Gets Dictionary of parameters
+
+
+
+
+
+ Extends the OrganizationServiceMetadata interface to allow for adding optionsets.
+
+
+
+
+ Adds an OptionSet Metadata Object to the Global OptionSets array
+
+
+
+
+
+ Type of command line argument represented.
+
+
+
+
+ Argument is optional.
+
+
+
+
+ Argument is required.
+
+
+
+
+ The argument may appear multiple times.
+
+
+
+
+ Argument is a binary argument. If it shows up
+ it is equivalent to a true value.
+
+
+
+
+ Argument is hidden from the user. It can be supplied
+ on the command line, but will not show up in the
+ standard usage message.
+
+
+
+
+ Wrapper class for Command Line Argument PropertyInfos.
+
+
+
+
+ Character used to start a new command line paramter.
+
+
+
+
+ Character used to seperate command line parameter and value.
+
+
+
+
+ Format to use when constructing the short form description for an argument.
+
+
+
+
+ Represents a command line argument.
+
+
+
+
+ Creates a new command line argument attribute.
+
+ Type of argument represented by the property.
+ Switch used by the command line argument
+
+
+
+ Type of command line argument
+
+
+
+
+ Switch used to represent the argument.
+
+
+
+
+ Shortcut switch used to represent the argument.
+
+
+
+
+ Description of the command line argument.
+
+
+
+
+ Description of the parameter.
+
+
+
+
+ Utility class to parse command line arguments.
+
+
+
+
+ The object that contains the properties to set.
+
+
+
+
+ A mapping of argument switches to command line arguments.
+
+
+
+
+ A list of all of the arguments that are supported
+
+
+
+
+ Creates a new command line parser for the given object.
+
+ The object containing the properties representing the command line args to set.
+
+
+
+ Populates the command line arguments map.
+
+
+
+
+ Interface for IOrganization metadata
+
+
+
+
+ Array of complete EntityMetadata for the Organization.
+
+
+
+
+ Array of complete OptionSetMetadata for the Organization.
+
+
+
+
+ All SdkMessages for the Organization.
+
+
+
+
+ Add OptionSet to OptionSets list.
+
+
+
+
+
+ SDK Message result
+
+
+
+
+ Default constructor
+
+
+
+
+ Message name
+
+
+
+
+ Gets or sets whether the message is private
+
+
+
+
+ Gets or sets the customization level
+
+
+
+
+ Gets or sets the message id
+
+
+
+
+ Gets or sets the message pair id
+
+
+
+
+ Gets or sets the message pair namespace
+
+
+
+
+ Gets or sets the message request id
+
+
+
+
+ Gets or sets the message request name
+
+
+
+
+ Gets or sets the message request field name
+
+
+
+
+ Gets or sets whether the message request field is optional
+
+
+
+
+ Gets or sets the message request field parser
+
+
+
+
+ Gets or sets the message request field CLR parser
+
+
+
+
+ Gets or sets the message request response id
+
+
+
+
+ Gets or sets the message request response field value
+
+
+
+
+ Gets or sets the message request response field formatter
+
+
+
+
+ Gets or sets the message request response field CLR formatter
+
+
+
+
+ Gets or sets the message request response field name
+
+
+
+
+ Gets or sets the message request field position
+
+
+
+
+ Gets or sets the message response field position
+
+
+
+
+ Gets or sets the message filter id
+
+
+
+
+ Gets or sets the message primary OTC filter
+
+
+
+
+ Gets or sets the message secondary OTC filter
+
+
+
+
+ Set of SDK message results
+
+
+
+
+ Default constructor
+
+
+
+
+ Gets or sets an array of results
+
+
+
+
+ Gets or sets the paging cookie
+
+
+
+
+ Gets or sets a flag for more records
+
+
+
+
+ An SDK Message
+
+
+
+
+ Default constructor
+
+
+
+
+ Gets the SDK message name
+
+
+
+
+ Gets the SDK message id
+
+
+
+
+ Gets whether the SDK message is private
+
+
+
+
+ Gets whether the SDK message is a custom action
+
+
+
+
+ Gets a dictionary of message pairs
+
+
+
+
+ Gets a dictionary of message filters
+
+
+
+
+ Fills an SDK message from a given result
+
+
+
+
+ An SDK message filter
+
+
+
+
+ Constructor
+
+ Message filter id
+
+
+
+ Constructor
+
+ Message filter id
+ Primary object type code
+ Secondary object type code
+ Whether the message filter is visible
+
+
+
+ Gets the message filter id
+
+
+
+
+ Gets or sets the message filter primary object type code
+
+
+
+
+ Gets or sets the message secondary object type code
+
+
+
+
+ Gets or sets whether the message filter is visible
+
+
+
+
+ An SDK message pair
+
+
+
+
+ Constructor
+
+ SDK message
+ Message pair id
+ Message namespace
+
+
+
+ Gets the message pair id
+
+
+
+
+ Gets the message namespace
+
+
+
+
+ Gets or sets the message
+
+
+
+
+ Gets or sets the message request
+
+
+
+
+ Gets or sets the message response
+
+
+
+
+ An SDK message request
+
+
+
+
+ Constructor
+
+ SDK Message
+ Message request id
+ Message request name
+
+
+
+ Gets the message request id
+
+
+
+
+ Gets the message pair of the request
+
+
+
+
+ Gets the message request name
+
+
+
+
+ Gets a dictionary of message request fields
+
+
+
+
+ An SDK message request field
+
+
+
+
+ Constructor
+
+ SDK message request
+ Request field index
+ Request field name
+ Request field CLR formatter
+ Whether the request field is optional
+
+
+
+ Gets the SDK message request
+
+
+
+
+ Gets the message request field index
+
+
+
+
+ Gets the message request field name
+
+
+
+
+ Gets the message request field CLR formatter
+
+
+
+
+ Gets whether the message field is optional
+
+
+
+
+ Gets whether the message request field is generic
+
+
+
+
+ An SDK message response
+
+
+
+
+ Constructor
+
+ Message response id
+
+
+
+ Gets the message response id
+
+
+
+
+ Gets the message response fields
+
+
+
+
+ An SDK message response field
+
+
+
+
+ Constructor
+
+ Field index
+ Field name
+ Field CLR formatter
+ Field value
+
+
+
+ Gets the message response field index
+
+
+
+
+ Gets the message response field name
+
+
+
+
+ Gets the message response field CLR formatter
+
+
+
+
+ Gets the message response field value
+
+
+
+
+ SDK Messages
+
+
+
+
+ Constructor
+
+ SDK message collection
+
+
+
+ Gets the message collection
+
+
+
+
+ Gets the MessagePagingInfo for a given collection SDK messages
+
+
+
+
+ Message paging info
+
+
+
+
+ Gets or sets the paging cookie
+
+
+
+
+ Gets or sets whether the paging info has more records
+
+
+
+
+ Gets the message paging info from a set of message results
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to <fetch distinct='true' version='1.0'>
+ <entity name='sdkmessage'>
+ <attribute name='name'/>
+ <attribute name='isprivate'/>
+ <attribute name='sdkmessageid'/>
+ <attribute name='customizationlevel'/>
+ <link-entity name='sdkmessagepair' alias='sdkmessagepair' to='sdkmessageid' from='sdkmessageid' link-type='inner'>
+ <filter>
+ <condition alias='sdkmessagepair' attribute='endpoint' operator='eq' value='2011/Organization.svc' />
+ </filter>
+ <attribute name='sdkmessagepairid'/>
+ <attribut [rest of string was truncated]";.
+
+
+
+
+ Looks up a localized string similar to <fetch distinct='true' version='1.0' returntotalrecordcount='true' >
+ <entity name='sdkmessage' >
+ <attribute name='name' />
+ <attribute name='isprivate' />
+ <attribute name='sdkmessageid' />
+ <attribute name='customizationlevel' />
+ <link-entity name='sdkmessagepair' alias='sdkmessagepair' to='sdkmessageid' from='sdkmessageid' link-type='inner' >
+ <filter>
+ <condition alias='sdkmessagepair' attribute='endpoint' operator='eq' value='201 [rest of string was truncated]";.
+
+
+
+
+ Builds OptionSet Enum and returns that class.
+
+
+
+
+
+
+
+
+
+
+ Generate the Constant name for an attribute property.
+
+
+
+
+
+
+ Determine if this should be generated for the constants lists.
+
+
+
+
+
+
+
+ Removes the blank lines spaces by generating the code as a string without BlankLinesBetweenMembers
+
+ The type.
+
+
+
+
+ If true a child attribute cannot be published or externally consumed.
+
+
+
+
+ default implementation.
+
+
+
+
+ Management utility for the Device Id
+
+
+
+
+ Loads the device credentials (if they exist). If they don't
+
+ Application id
+ URL for the current token issuer
+
+ The issuerUri can be retrieved from the IServiceConfiguration interface's CurrentIssuer property.
+
+
+
+
+ Registers the given device with Live ID
+
+ ID for the application
+ URL for the current token issuer
+ ClientCredentials that were registered
+
+ The issuerUri can be retrieved from the IServiceConfiguration interface's CurrentIssuer property.
+
+
+
+
+ Registers the given device with Live ID
+
+ ID for the application
+ URL for the current token issuer
+ Device name that should be registered
+ Device password that should be registered
+ ClientCredentials that were registered
+
+ The issuerUri can be retrieved from the IServiceConfiguration interface's CurrentIssuer property.
+
+
+
+
+ Loads the device's credentials from the file system
+
+ URL for the current token issuer
+ Device Credentials (if set) or null
+
+ The issuerUri can be retrieved from the IServiceConfiguration interface's CurrentIssuer property.
+
+
+
+
+ Indicates an error during registration
+
+
+
+
+ Unspecified or Unknown Error occurred
+
+
+
+
+ Interface Disabled
+
+
+
+
+ Invalid Request Format
+
+
+
+
+ Unknown Client Version
+
+
+
+
+ Blank Password
+
+
+
+
+ Missing Device User Name or Password
+
+
+
+
+ Invalid Parameter Syntax
+
+
+
+
+ Internal Error
+
+
+
+
+ Device Already Exists
+
+
+
+
+ Indicates that Device Registration failed
+
+
+
+
+ Construct an instance of the DeviceRegistrationFailedException class
+
+
+
+
+ Construct an instance of the DeviceRegistrationFailedException class
+
+ Error code that occurred
+ Subcode that occurred
+
+
+
+ Construct an instance of the DeviceRegistrationFailedException class
+
+ Error code that occurred
+ Subcode that occurred
+ Inner exception
+
+
+
+ Construct an instance of the DeviceRegistrationFailedException class
+
+
+
+
+
+
+ Device requestration request
+
+
+
+
+ Default constructor
+
+
+
+
+ Constructor
+
+ Application id
+ Device to register
+
+
+
+ Gets or sets the device registration client info
+
+
+
+
+ Gets or sets the device registration authentication
+
+
+
+
+ Device registration client info
+
+
+
+
+ Gets or sets the device registration client info's application id
+
+
+
+
+ Gets or sets the device registration client info version
+
+
+
+
+ Device registration authentication
+
+
+
+
+ Gets or sets the device registration authentication member name
+
+
+
+
+ Gets or sets the device registration authentication password
+
+
+
+
+ Device registration response
+
+
+
+
+ Gets or sets whether the device registration was successful
+
+
+
+
+ Gets or sets the device registration puid
+
+
+
+
+ Gets or sets the device registration error
+
+
+
+
+ Gets or sets the device registration error sub code
+
+
+
+
+ Device registration response error
+
+
+
+
+ Gets or sets the device registration error code
+
+
+
+
+ Live device
+
+
+
+
+ Gets or sets the device version
+
+
+
+
+ Gets or sets the device user name
+
+
+
+
+ Gets or sets the device token
+
+
+
+
+ Gets or sets the device token expiry
+
+
+
+
+ Gets or sets the device clock skew
+
+
+
+
+ Device user name
+
+
+
+
+ Default constructor
+
+
+
+
+ Gets or sets the device user name
+
+
+
+
+ Gets or sets the device user type
+
+
+
+
+ Gets or sets the device user password
+
+
+
+
+ Gets or sets the device id
+
+
+
+
+ Gets or sets the device user's decrypted password
+
+
+
+
+ Creates client credentials for the device user
+
+ An instance of ClientCredentials
+
+
+
+ Interface for metadata provider query service
+
+
+
+
+ Retrieves entities for the given service
+
+ Service to query
+ An EntityMetadata array
+
+
+
+ Retrieves option sets for the given service
+
+ Service to query
+ An OptionSetMetadataBase array
+
+
+
+ Retrieves SDK requests for the given service
+
+ Service to query
+ SdkMessages
+
+
+
+ Special class to hold hardcoded entity and attribute name mappings.
+
+
+
+
+ Retrieves a name for the Entity being generated.
+
+
+
+
+ Static constructor.
+
+
+
+
+ List of attribute names that will conflict with system properties.
+
+
+
+
+ Builds a connection string from the passed in parameters.
+
+
+
+
+
+ Type of code to generate
+
+
+
+
+ Type Class
+
+
+
+
+ Type Enum
+
+
+
+
+ Type Field
+
+
+
+
+ Type Method
+
+
+
+
+ Type Property
+
+
+
+
+ Type Struct
+
+
+
+
+ Type Parameter
+
+
+
+
+ Interface that provides the ability to generate code based on organization metadata.
+
+
+
+
+ Writes code based on the organization metadata.
+
+ Organization metadata to generate the code for.
+ Laguage to generate
+ Output file to write the generated code to.
+ Target namespace for the generated code.
+ ServiceProvider to query for additional services that can be used during code generation.
+
+
+
+ Returns the type that gets generated for the OptionSetMetadata
+
+
+
+
+ Returns the type that gets generated for the Option
+
+
+
+
+ Returns the type that gets generated for the EntityMetadata
+
+
+
+
+ Returns the type that gets generated for the AttributeMetadata
+
+
+
+
+ Returns the type that gets generated for the SdkMessagePair
+
+
+
+
+ Returns the type that gets generated for the SdkMessageRequestField
+
+
+
+
+ Returns the type that gets generated for the SdkMessageResponseField
+
+
+
+
+ Interface that can be used to filter out specific pieces of metadata from having code generated for it.
+
+
+
+
+ Returns true to generate code for the OptionSet and false otherwise.
+
+
+
+
+ Returns true to generate code for the Option and false otherwise.
+
+
+
+
+ Returns true to generate code for the Entity and false otherwise.
+
+
+
+
+ Returns true to generate code for the Attribute and false otherwise.
+
+
+
+
+ Returns true to generate code for the 1:N, N:N, or N:1 relationship and false otherwise.
+
+
+
+
+ Returns true to generate code for the data context and false otherwise.
+
+
+
+
+ Interface for code writer message filter service
+
+
+
+
+ Returns true to generate code for the SDK Message and false otherwise.
+
+
+
+
+ Returns true to generate code for the SDK Message Pair and false otherwise.
+
+
+
+
+ Interface that can be used to customize the CodeDom before it generates code.
+
+
+
+
+ Customize the generated types before code is generated
+
+
+
+
+ Interface that provides metadata for a given organization.
+
+
+
+
+ Returns the metadata for a given organization. Subsequent calls to the method should
+ return the same set of information on the IOrganizationMetadata object.
+
+
+
+
+ Interface that provides metadata for a given organization.
+
+
+
+
+ Loads metadata for the given service
+
+ Service to query
+ IOrganizationMetadata
+
+
+
+ Used by the ICodeGenerationService to retrieve names for the CodeDOM objects being created.
+
+
+
+
+ Returns a name for the OptionSet being generated.
+
+
+
+
+ Retrieves a name for the Option being generated.
+
+
+
+
+ Retrieves a name for the Entity being generated.
+
+
+
+
+ Retrieves a name for the Attribute being generated.
+
+
+
+
+ Retrieves a name for the 1:N, N:N, or N:1 relationship being generated.
+
+
+
+
+ Retrieves a name for the data context being generated.
+
+
+
+
+ Retrieves a name for a set of entities.
+
+
+
+
+ Retrieves a name for the MessagePair being generated.
+
+
+
+
+ Retrieves a name for the Request Field being generated.
+
+
+
+
+ Retrieves a name for the Response Field being generated.
+
+
+
+
+ Used by the ICodeGenerationService to retrieve types for the CodeDOM objects being created.
+
+
+
+
+ Retrieves a CodeTypeReference for the entity set being generated.
+
+
+
+
+ Retrieves a CodeTypeReference for the attribute being generated.
+
+
+
+
+ Retrieves a CodeTypeReference for the 1:N, N:N, or N:1 relationship being generated.
+
+
+
+
+ Retrieves a CodeTypeReference for the Request Field being generated.
+
+
+
+
+ Retrieves a CodeTypeReference for the Response Field being generated.
+
+
+
+
+ Trace Logger for this project
+
+
+
+
+ Trace Tag.
+
+
+
+
+ String Builder Info.
+
+
+
+
+ Last Exception.
+
+
+
+
+ Last Error from CRM.
+
+
+
+
+ Last Exception from CRM .
+
+
+
+
+ Returns the trace source level for the current logger.
+
+
+
+
+ Constructor.
+
+ trace source name
+
+
+
+ Last error reset.
+
+
+
+
+ Log a Message.
+
+
+
+
+
+ Log a Trace event.
+
+
+
+
+
+
+ Log a Trace event.
+
+ Error Message
+ Trace Event type Information
+ Exception object
+
+
+
+ Log an error with an Exception.
+
+
+
+
+
+ Logs the error text to the stream.
+
+ Exception to be written.
+ Stream writer to use to write the exception.
+ level of the exception, this deals with inner exceptions.
+
+
+
+ Interaction logic for CRMInteractiveLogin.xaml
+
+
+ CRMInteractiveLogin
+
+
+
+
+ Microsoft.Xrm.Tooling.Connector services
+
+
+
+
+ Bool flag to determine if there is a connection
+
+
+
+
+ CRM Connection Manager component.
+
+
+
+
+ This is used to allow the UI to reset w/out closing
+
+
+
+
+ CRM Connection Manager
+
+
+
+
+ Host Name to use..
+
+
+
+
+ Profile Name to use
+
+
+
+
+ When set to true, forces a user login,
+
+
+
+
+ Raised when a connection to CRM has completed.
+
+
+
+
+ Default constructor
+
+
+
+
+ Raised when the window loads for the first time.
+
+
+
+
+
+
+ Run Login process.
+
+
+
+
+ Updates from the Auto Login process.
+
+
+
+
+
+
+ Complete Event from the Auto Login process
+
+
+
+
+
+
+ Login control connect check starting.
+
+
+
+
+
+
+ Login control connect check status event.
+
+
+
+
+
+
+ Login control Error event.
+
+
+
+
+
+
+ Login Control Cancel event raised.
+
+
+
+
+
+
+ This raises and processes Success
+
+
+
+
+ InitializeComponent
+
+
+
+
diff --git a/src/Assemblies/CoreTools/LicenseTerms.docx b/src/Assemblies/CoreTools/LicenseTerms.docx
new file mode 100644
index 0000000..02d5ed7
Binary files /dev/null and b/src/Assemblies/CoreTools/LicenseTerms.docx differ
diff --git a/src/Assemblies/CoreTools/Microsoft.ApplicationInsights.dll b/src/Assemblies/CoreTools/Microsoft.ApplicationInsights.dll
new file mode 100644
index 0000000..a917651
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.ApplicationInsights.dll differ
diff --git a/src/Assemblies/CoreTools/Microsoft.Crm.Sdk.Proxy.dll b/src/Assemblies/CoreTools/Microsoft.Crm.Sdk.Proxy.dll
new file mode 100644
index 0000000..90abdb3
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.Crm.Sdk.Proxy.dll differ
diff --git a/src/Assemblies/CoreTools/Microsoft.Deployment.Compression.Cab.dll b/src/Assemblies/CoreTools/Microsoft.Deployment.Compression.Cab.dll
new file mode 100644
index 0000000..d7f8000
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.Deployment.Compression.Cab.dll differ
diff --git a/src/Assemblies/CoreTools/Microsoft.Deployment.Compression.dll b/src/Assemblies/CoreTools/Microsoft.Deployment.Compression.dll
new file mode 100644
index 0000000..dd8fa7f
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.Deployment.Compression.dll differ
diff --git a/src/Assemblies/CoreTools/Microsoft.IdentityModel.Clients.ActiveDirectory.dll b/src/Assemblies/CoreTools/Microsoft.IdentityModel.Clients.ActiveDirectory.dll
new file mode 100644
index 0000000..4f408cf
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.IdentityModel.Clients.ActiveDirectory.dll differ
diff --git a/src/Assemblies/CoreTools/Microsoft.PowerPlatform.Tooling.BatchedTelemetry.dll b/src/Assemblies/CoreTools/Microsoft.PowerPlatform.Tooling.BatchedTelemetry.dll
new file mode 100644
index 0000000..ec81d77
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.PowerPlatform.Tooling.BatchedTelemetry.dll differ
diff --git a/src/Assemblies/CoreTools/Microsoft.Rest.ClientRuntime.dll b/src/Assemblies/CoreTools/Microsoft.Rest.ClientRuntime.dll
new file mode 100644
index 0000000..d7d0833
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.Rest.ClientRuntime.dll differ
diff --git a/src/Assemblies/CoreTools/Microsoft.Xrm.Sdk.Deployment.dll b/src/Assemblies/CoreTools/Microsoft.Xrm.Sdk.Deployment.dll
new file mode 100644
index 0000000..09f2e01
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.Xrm.Sdk.Deployment.dll differ
diff --git a/src/Assemblies/CoreTools/Microsoft.Xrm.Sdk.dll b/src/Assemblies/CoreTools/Microsoft.Xrm.Sdk.dll
new file mode 100644
index 0000000..43486ea
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.Xrm.Sdk.dll differ
diff --git a/src/Assemblies/CoreTools/Microsoft.Xrm.Tooling.Connector.dll b/src/Assemblies/CoreTools/Microsoft.Xrm.Tooling.Connector.dll
new file mode 100644
index 0000000..97fc67f
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.Xrm.Tooling.Connector.dll differ
diff --git a/src/Assemblies/CoreTools/Microsoft.Xrm.Tooling.CrmConnectControl.dll b/src/Assemblies/CoreTools/Microsoft.Xrm.Tooling.CrmConnectControl.dll
new file mode 100644
index 0000000..e032dea
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.Xrm.Tooling.CrmConnectControl.dll differ
diff --git a/src/Assemblies/CoreTools/Microsoft.Xrm.Tooling.Ui.Styles.dll b/src/Assemblies/CoreTools/Microsoft.Xrm.Tooling.Ui.Styles.dll
new file mode 100644
index 0000000..a5fee9f
Binary files /dev/null and b/src/Assemblies/CoreTools/Microsoft.Xrm.Tooling.Ui.Styles.dll differ
diff --git a/src/Assemblies/CoreTools/Newtonsoft.Json.dll b/src/Assemblies/CoreTools/Newtonsoft.Json.dll
new file mode 100644
index 0000000..cf1fba4
Binary files /dev/null and b/src/Assemblies/CoreTools/Newtonsoft.Json.dll differ
diff --git a/src/Assemblies/CoreTools/Other Redistributable.txt b/src/Assemblies/CoreTools/Other Redistributable.txt
new file mode 100644
index 0000000..04ddf62
--- /dev/null
+++ b/src/Assemblies/CoreTools/Other Redistributable.txt
@@ -0,0 +1,18 @@
+AntiXSSLibrary.dll
+Microsoft.Crm.Outlook.Sdk.dll
+Microsoft.Crm.Sdk.Proxy.dll
+Microsoft.Crm.Tools.EmailProviders.dll
+Microsoft.Xrm.Client.CodeGeneration.dll
+Microsoft.Xrm.Client.dll
+Microsoft.Xrm.Portal.dll
+Microsoft.Xrm.Portal.Files.dll
+Microsoft.Xrm.Sdk.Deployment.dll
+Microsoft.Xrm.Sdk.dll
+Microsoft.Xrm.Sdk.Workflow.dll
+Microsoft.Xrm.Tooling.Connector.dll
+Microsoft.Xrm.Tooling.CrmConnectControl.dll
+Microsoft.Xrm.Tooling.CrmConnector.Powershell.dll
+Microsoft.Xrm.Tooling.Ui.Resources.dll
+Microsoft.Xrm.Tooling.WebResourceUtility.dll
+
+
diff --git a/src/Assemblies/CoreTools/SolutionPackager.exe b/src/Assemblies/CoreTools/SolutionPackager.exe
new file mode 100644
index 0000000..dca361f
Binary files /dev/null and b/src/Assemblies/CoreTools/SolutionPackager.exe differ
diff --git a/src/Assemblies/CoreTools/SolutionPackager.exe.config b/src/Assemblies/CoreTools/SolutionPackager.exe.config
new file mode 100644
index 0000000..72d137f
--- /dev/null
+++ b/src/Assemblies/CoreTools/SolutionPackager.exe.config
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Assemblies/CoreTools/SolutionPackagerLib.dll b/src/Assemblies/CoreTools/SolutionPackagerLib.dll
new file mode 100644
index 0000000..58429ed
Binary files /dev/null and b/src/Assemblies/CoreTools/SolutionPackagerLib.dll differ
diff --git a/src/Assemblies/CoreTools/System.Diagnostics.DiagnosticSource.dll b/src/Assemblies/CoreTools/System.Diagnostics.DiagnosticSource.dll
new file mode 100644
index 0000000..8da941f
Binary files /dev/null and b/src/Assemblies/CoreTools/System.Diagnostics.DiagnosticSource.dll differ
diff --git a/src/Assemblies/CoreTools/System.Memory.dll b/src/Assemblies/CoreTools/System.Memory.dll
new file mode 100644
index 0000000..4617199
Binary files /dev/null and b/src/Assemblies/CoreTools/System.Memory.dll differ
diff --git a/src/Assemblies/CoreTools/System.Runtime.CompilerServices.Unsafe.dll b/src/Assemblies/CoreTools/System.Runtime.CompilerServices.Unsafe.dll
new file mode 100644
index 0000000..c5ba4e4
Binary files /dev/null and b/src/Assemblies/CoreTools/System.Runtime.CompilerServices.Unsafe.dll differ
diff --git a/src/Assemblies/CoreTools/System.Text.Json.dll b/src/Assemblies/CoreTools/System.Text.Json.dll
new file mode 100644
index 0000000..4ddb4c0
Binary files /dev/null and b/src/Assemblies/CoreTools/System.Text.Json.dll differ
diff --git a/src/Assemblies/CoreTools/System.ValueTuple.dll b/src/Assemblies/CoreTools/System.ValueTuple.dll
new file mode 100644
index 0000000..1cadbf3
Binary files /dev/null and b/src/Assemblies/CoreTools/System.ValueTuple.dll differ
diff --git a/src/Assemblies/CoreTools/pacTelemetryUpload.exe b/src/Assemblies/CoreTools/pacTelemetryUpload.exe
new file mode 100644
index 0000000..e7b9b73
Binary files /dev/null and b/src/Assemblies/CoreTools/pacTelemetryUpload.exe differ
diff --git a/src/Assemblies/CoreTools/pacTelemetryUpload.exe.config b/src/Assemblies/CoreTools/pacTelemetryUpload.exe.config
new file mode 100644
index 0000000..73bb574
--- /dev/null
+++ b/src/Assemblies/CoreTools/pacTelemetryUpload.exe.config
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Solutions/Invoke-XrmSolutionPackager.ps1 b/src/Solutions/Invoke-XrmSolutionPackager.ps1
index a1ac037..b4020df 100644
--- a/src/Solutions/Invoke-XrmSolutionPackager.ps1
+++ b/src/Solutions/Invoke-XrmSolutionPackager.ps1
@@ -45,7 +45,7 @@ function Invoke-XrmSolutionPackager {
[ValidateNotNullOrEmpty()]
[ValidateScript( { Test-Path $_ })]
[String]
- $SolutionPackagerExeFilePath = "$PSScriptRoot\..\Assemblies\SolutionPackager.exe",
+ $SolutionPackagerExeFilePath = "$PSScriptRoot\..\Assemblies\CoreTools\SolutionPackager.exe",
[Parameter(Mandatory = $true)]
[ValidateSet("Extract", "Pack")]