diff --git a/BSIPA-Meta/BSIPA-Meta.csproj b/BSIPA-Meta/BSIPA-Meta.csproj index cbdb384e..2cf0f46f 100644 --- a/BSIPA-Meta/BSIPA-Meta.csproj +++ b/BSIPA-Meta/BSIPA-Meta.csproj @@ -1,7 +1,7 @@  - net35;net461 + net461 x86;x64 Debug;Release;Verbose;Verbose_Release @@ -59,9 +59,11 @@ + + @@ -87,3 +89,4 @@ + diff --git a/IPA.Injector/IPA.Injector.csproj b/IPA.Injector/IPA.Injector.csproj index a100bf44..e7f5169a 100644 --- a/IPA.Injector/IPA.Injector.csproj +++ b/IPA.Injector/IPA.Injector.csproj @@ -3,7 +3,7 @@ - net461;net35 + net461 IPA.Injector true @@ -56,6 +56,14 @@ Always + + + + Libraries\Thirdparty\%(Filename)%(Extension) + Always + + + Libraries\Mono\I18N.dll diff --git a/IPA.Injector/Properties/AssemblyInfo.cs b/IPA.Injector/Properties/AssemblyInfo.cs index 5f18531f..2ed6471c 100644 --- a/IPA.Injector/Properties/AssemblyInfo.cs +++ b/IPA.Injector/Properties/AssemblyInfo.cs @@ -1,4 +1,5 @@ -using System.Reflection; +using System; +using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; @@ -18,6 +19,7 @@ using System.Runtime.InteropServices; // 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)] +[assembly: CLSCompliant(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("2a1af16b-27f1-46e0-9a95-181516bc1cb7")] diff --git a/IPA.Loader/IPA.Loader.csproj b/IPA.Loader/IPA.Loader.csproj index c14a9de5..bd4d4609 100644 --- a/IPA.Loader/IPA.Loader.csproj +++ b/IPA.Loader/IPA.Loader.csproj @@ -3,7 +3,7 @@ - net461;net35 + net461 IPA true diff --git a/Libs/thirdparty/Hive.Versioning.dll b/Libs/thirdparty/Hive.Versioning.dll new file mode 100644 index 00000000..93ed807e Binary files /dev/null and b/Libs/thirdparty/Hive.Versioning.dll differ diff --git a/Libs/thirdparty/Hive.Versioning.pdb b/Libs/thirdparty/Hive.Versioning.pdb new file mode 100644 index 00000000..846207fb Binary files /dev/null and b/Libs/thirdparty/Hive.Versioning.pdb differ diff --git a/Libs/thirdparty/Hive.Versioning.xml b/Libs/thirdparty/Hive.Versioning.xml new file mode 100644 index 00000000..8143d72c --- /dev/null +++ b/Libs/thirdparty/Hive.Versioning.xml @@ -0,0 +1,780 @@ + + + + Hive.Versioning + + + + + A version that meets the Semantic Versioning specification. + + + + + Gets the zero version (0.0.0). + + + + + Parses and creates a version object from a sequence of characters. + + + This is roughly equivalent to . + + The sequence of characters to parse as a version. + Thrown when the input is not a valid SemVer version. + + + + Creates a version object from the component parts of the version. + + The major version number. + The minor version number. + The patch number. + A sequence of IDs specifying the prerelease. + A sequence of IDs representing the build. + + + + Creates a version object from the component parts of the version. + + + This interface is provided only for CLS compliance. The actual version number is unsigned. + Because of this, very large version numbers may cause issues with this interface. + + The major version number. + The minor version number. + The patch number. + A sequence of IDs specifying the prerelease. + A sequence of IDs representing the build. + + + + Creates a version object from the component parts of the version. + + The major version number. + The minor version number. + The patch number. + + + + Creates a version object from the component parts of the version. + + + This interface is provided only for CLS compliance. The actual version number is unsigned. + Because of this, very large version numbers may cause issues with this interface. + + The major version number. + The minor version number. + The patch number. + + + + Gets the major version number. + + + + + Gets the minor version number. + + + + + Gets the patch number. + + + + + Gets the sequence of prerelease IDs. + + + + + Gets the sequence of build IDs. + + + + + Vers the version number, as signed integers. + + + This interface is provided only for CLS compliance. The actual version number is unsigned. + Because of this, very large version numbers may cause issues with this interface. + + The major version number. + The minor version number. + The patch number. + + + + Appends this to the provided . + + The to append to. + The provided + + + + + + + Compares two versions for equality. + + The first version to compare. + The second version to compare. + if they are equal, otherwise. + + + + Compares two versions for inequality. + + The first version to compare. + The second version to compare. + if they are not equal, otherwise. + + + + Checks if is greater than . + + The first version to compare. + The second version to compare. + if is greater than , + + + + Checks if is less than . + + The first version to compare. + The second version to compare. + if is less than , + + + + Checks if is greater than or equal to . + + The first version to compare. + The second version to compare. + if is greater than or equal to , + + + + Checks if is less than or equal to . + + The first version to compare. + The second version to compare. + if is less than or equal to , + + + + Determines the maximum of two versions. + + The first version. + The second version. + The maximum of and + + + + Determines the minimum of two versions. + + The first version. + The second version. + The minimum of and + + + + Compares version to for equality. + + The object to compare to. + if they are equal, otherwise. + + + + Gets the hash code of this . + + The hash code for this . + + + + Compares this version to another version according to the SemVer specification. + + The version to compare to. + if the versions are equal, otherwise. + + + + Compares this version to another version according to the SemVer specification. + + The version to compare to. + Less than zero if is less than , zero if they are equal, and + more than zero if is greater than + + + + Parses a sequence of characters into a object. + + The sequence of characters to parse. + The parsed version object. + Thrown when is not a valid SemVer version. + + + + Attempts to parse a sequence of characters into a version object. + + The sequence of characters to parse. + The parsed version, if the input is valid. + if the text is valid and could be parsed, otherwise. + + + + Attempts to parse a sequence of characters into a version object, as part of a larger parse. + + + When this method returns, will begin after the end of the parsed version, if it is present, or + what it initially contained if no version is present and this returns + + The sequence of characters to parse. + The parsed version, if the input is valid. + if the text is valid and could be parsed, otherwise. + + + + An arbitrary range of s, capable of matching any possible set of s. + + + + + A is considered matching if it is exactly equivalent to this one, in addition to if its comparison + value matches. + + + + + Converts this to an equivalent . + + + The returned always takes the form >=Version <=Version. + + The that is equivalent to this + + + + Inverts this into either another or a . + + + The only time this produces a is when is . + + The inverted , if any. + The representing this inverted, if any. + if this produces a , or + if it produces a . + + + + Tries to perform a logical conjunction (and) with . + + + This method will only return one of the following values: + + + + A single was produced, and was set. + + + + A single was produced, and was set. + + + + The conjunction result matches no possible values. + + + + The other to try to perform conjunction with. + The single the operation produced, if any. + The single the operation produced, if any. + A indicating which of the outputs were set, if any. + + + + A part of the implementation of that handles + the cases where exactly one of the inputs are an comparer. + + + + + Tries to perform a logical disjunction (or) with . + + + This method will only return one of the following values: + + + + A single was produced, and was set. + + + + A single was produced, and was set. + + + + The disjunction result matches every valid value. For convenience, + is set to . + + + + The disjunction result is not representable with only a and a . + For example, if the inputs are non-equal comparers, this will be returned. + + + + The other to try to perform disjunction with. + The single the operation produced, if any. + The single the operation produced, if any. + A indicating which of the outputs were set, if any. + + + + A part of the implementation of that handles + the cases where exactly one of the inputs are an comparer. + + + + + This is identical to except that it uses + instead of . + + + + + Tries to perform a logical conjunction (and) with . + + + This method will only return one of the following values: + + + + A single was produced, and was set. + + + + Two s were produced, and both and were set. + + + + The conjunction result matches no valid values. + + + + The other to try to perform conjunction with. + The single (or first) the operation produced, if any. + The second the operation produced, if any. + A indicating which of the outputs were set, if any. + + + + A part of the implementation of , handling the cases where exactly one + input is an inward-facing . + + + + + Tries to perform a logical disjunction (or) with . + + + This method will only return one of the following values: + + + + A single was produced, and was set. + + + + Two s were produced, and both and were set. + + + + The disjunction result matches every valid value. For convenience, + is set to . + + + + The other to try to perform disjunction with. + The single (or first) the operation produced, if any. + The second the operation produced, if any. + A indicating which of the outputs were set, if any. + + + + A part of the implementation of , handling the cases where exactly one + input is an inward-facing . + + + + + Checks if two s are mutually exclusive, but meet exactly leaving no versions that neither matches. + + + + + Constructs a new that corresponds to the text provided in . + + The textual represenation of the to create. + + Thrown when is not a valid . + + + + Creates a which matches only the provided . + + The to match. + A matching only the provided . + + + + Computes the logical disjunction (or) of this and . + + The other to compute the disjunction of. + The logical disjunction of and . + + + + + Computes the logical disjunction (or) of the two arguments. + + The first argument. + The second argument. + The logical disjunction of and . + + + + + Computes the logical conjunction (and) of this and . + + The other to compute the conjunction of. + The logical conjunction of and . + + + + + Computes the logical conjunction (and) of the two arguments. + + The first argument. + The second argument. + The logical disjunction of and . + + + + + Gets the compliement of this . + + The compliement of this . + + + + + Computes the compliment of the argument. + + The to compute the compliment of. + The compliment of . + + + + + Determines whether or not a given matches this . + + The to check. + if matches, otherwise. + + + + The that matches all s. + + + + + The that matches no s. + + + + + Appends the string representation of this to the provided . + + The to append to. + The that was appended to. + + + + Gets the string representation of this . + + The string representation of this . + + + + + + + Determines whether this is equivalent to another range. + + The to compare to. + if they are equivalent, otherwise. + + + + + + + Compares two s for equality. + + The first argument. + The second argument. + if and are equivalent, otherwise. + + + + Determines if two s are not equivalent. + + The first argument. + The second argument. + if and are not equivalent, otherwise. + + + + Parses a string as a . + + + + A valid string is made up of a set of disjoint regions joined by ||. + These regions can be either bounded or unbounded. +
A bounded region is a pair of unbounded regions separated by whitespace, such that both unbounded regions overlap, + and the unbounded region whose written value is lower comes first. +
An unbounded region is any valid prefixed with one of the following comparison operators: +
+ + >= + The unbounded range matches any greater than or equal to its specified . + + + <= + The unbounded range matches any less than or equal to its specified . + + + > + The unbounded range matches any greater than its specified . + + + < + The unbounded range matches any less than its specified . + + + = + The range matches only the that it is specified with. + + Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: + + ^ + + The bounded range matches all versions greater than or equal to its specified and less than the next major incremented + version. For example, ^1.5.4 would be equivalent to the bounded range >=1.5.4 <2.0.0, while ^0.4.2 would be equivalent + to >=0.4.2 <0.5.0. + + + +
+ The stirng to parse. + The parsed . + + Thrown when is not a valid . +
+ + + Attempts to parse a whole string as a . + + + + A valid string is made up of a set of disjoint regions joined by ||. + These regions can be either bounded or unbounded. +
A bounded region is a pair of unbounded regions separated by whitespace, such that both unbounded regions overlap, + and the unbounded region whose written value is lower comes first. +
An unbounded region is any valid prefixed with one of the following comparison operators: +
+ + >= + The unbounded range matches any greater than or equal to its specified . + + + <= + The unbounded range matches any less than or equal to its specified . + + + > + The unbounded range matches any greater than its specified . + + + < + The unbounded range matches any less than its specified . + + + = + The range matches only the that it is specified with. + + Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: + + ^ + + The bounded range matches all versions greater than or equal to its specified and less than the next major incremented + version. For example, ^1.5.4 would be equivalent to the bounded range >=1.5.4 <2.0.0, while ^0.4.2 would be equivalent + to >=0.4.2 <0.5.0. + + + +
+ The string to try to parse. + The parsed , if any. + if was successfully parsed, otherwise. + +
+ + + Attempts to parse a from the start of the string. + + + When this returns , will begin immediately after the parsed . + When this returns , will remain unchanged. + + A valid string is made up of a set of disjoint regions joined by ||. + These regions can be either bounded or unbounded. +
A bounded region is a pair of unbounded regions separated by whitespace, such that both unbounded regions overlap, + and the unbounded region whose written value is lower comes first. +
An unbounded region is any valid prefixed with one of the following comparison operators: +
+ + >= + The unbounded range matches any greater than or equal to its specified . + + + <= + The unbounded range matches any less than or equal to its specified . + + + > + The unbounded range matches any greater than its specified . + + + < + The unbounded range matches any less than its specified . + + + = + The range matches only the that it is specified with. + + Note that unbounded ranges using the = comparison operator cannot be part of a bounded region.Additionally, there are the following shorthand comparison operators that expand to bounded regions: + + ^ + + The bounded range matches all versions greater than or equal to its specified and less than the next major incremented + version. For example, ^1.5.4 would be equivalent to the bounded range >=1.5.4 <2.0.0, while ^0.4.2 would be equivalent + to >=0.4.2 <0.5.0. + + + +
+ The string to try to parse. + The parsed , if any. + if was successfully parsed, otherwise. +
+ + + 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. + + + + + Gets a resource string for AssertionFailed similar to ''. + + + + + Gets a resource string for Range_InputInvalid similar to 'Input is not a valid VersionRange'. + + + + + Gets a resource string for Version_InputInvalid similar to 'Input was not a valid SemVer version'. + + + + + Gets a resource string for Version_InputTooShort similar to 'Input too short to be a SemVer version'. + + + + + Specifies that when a method returns , + the parameter may be even if the corresponding type disallows it. + + + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this + value, the associated parameter may be null. + + + + Gets the return value condition. + + The return value condition. If the method returns this value, the + associated parameter may be null. + + + + Specifies that when a method returns , + the parameter is not even if the corresponding type allows it. + + + + + Initializes the attribute with the specified return value condition. + + The return value condition. If the method returns this + value, the associated parameter is not null. + + + + Gets the return value condition. + + The return value condition. If the method returns this value, the + associated parameter is not null. + + + + Specifies that an output may be even if the corresponding type disallows it. + + + + + Specifies that the method will not return if the associated Boolean parameter is passed the specified value. + + + + + Initializes the attribute with the specified parameter value. + + + The condition parameter value. Code after the method will be considered unreachable by diagnostics if the argument to + the associated parameter matches this value. + + + + + Gets the condition parameter value. + + +
+