Skip to content

Commit 4be6013

Browse files
authored
Merge pull request #230 from watson-developer-cloud/rc-2.2.2
Release 2.2.2
2 parents 39ea749 + 6097884 commit 4be6013

File tree

130 files changed

+4919
-3548
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

130 files changed

+4919
-3548
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
Change Log
22
==========
3+
## Version 2.2.2
4+
_2018-05-18_
5+
* Regenerated SDK based on latest API definition.
6+
* Fixed: Added in hand written sessions methods for Speech to Text ([#204](https://github.com/watson-developer-cloud/dotnet-standard-sdk/issues/204), [#205](https://github.com/watson-developer-cloud/dotnet-standard-sdk/pull/205)).
7+
* Fixed: Revised type of `Timestamps` and `WordConfidence` in `SpeechRecognitionAlternative.cs` from `List<string>` to `string[][]` ([#198](https://github.com/watson-developer-cloud/dotnet-standard-sdk/issues/198), [#205](https://github.com/watson-developer-cloud/dotnet-standard-sdk/pull/205)).
8+
* New: Revised tests to get credentials from our internal credential github repo([#4456](https://github.ibm.com/Watson/developer-experience/issues/4456), [#215](https://github.com/watson-developer-cloud/dotnet-standard-sdk/pull/215)).
9+
* New: Support for IAM authentication ([#4288](https://zenhub.innovate.ibm.com/app/workspace/o/watson/developer-experience/issues/4288), [#210](https://github.com/watson-developer-cloud/dotnet-standard-sdk/pull/210)).
10+
311
## Version 2.2.1
412
_2018-04-21_
513
* New: Support for custom request and response headers ([#4311](https://github.ibm.com/Watson/developer-experience/issues/4311), [#206](https://github.com/watson-developer-cloud/dotnet-standard-sdk/pull/206)).

Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ PROJECT_NAME = "Watson Developer Cloud .NET Standard SDK"
3838
# could be handy for archiving the generated documentation or if some version
3939
# control system is used.
4040

41-
PROJECT_NUMBER = 2.2.1
41+
PROJECT_NUMBER = 2.2.2
4242

4343
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4444
# for a project that appears at the top of each page and should give viewer a

IBM.WatsonDeveloperCloud.sln

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IBM.WatsonDeveloperCloud.NL
6767
EndProject
6868
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IBM.WatsonDeveloperCloud.NLU.v1.UnitTests", "test\IBM.WatsonDeveloperCloud.NaturalLanguageUnderstanding.v1.UnitTests\IBM.WatsonDeveloperCloud.NLU.v1.UnitTests.csproj", "{B401A97F-FD61-4CC9-9392-26324A8E5461}"
6969
EndProject
70-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IBM.WatsonDeveloperCloud.PersonalityInsights.v3.IntegrationTests", "test\IBM.WatsonDeveloperCloud.PersonalityInsights.v3.IntegrationTests\IBM.WatsonDeveloperCloud.PersonalityInsights.v3.IntegrationTests.csproj", "{89E40543-56DA-4307-8625-074B9FD4EF5A}"
71-
EndProject
7270
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IBM.WatsonDeveloperCloud.PersonalityInsights.v3.UnitTests", "test\IBM.WatsonDeveloperCloud.PersonalityInsights.v3.UnitTests\IBM.WatsonDeveloperCloud.PersonalityInsights.v3.UnitTests.csproj", "{9F8D0C47-3DDD-4423-B594-69A35898869F}"
7371
EndProject
7472
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IBM.WatsonDeveloperCloud.ToneAnalyzer.v3.IntegrationTests", "test\IBM.WatsonDeveloperCloud.ToneAnalyzer.v3.IntegrationTests\IBM.WatsonDeveloperCloud.ToneAnalyzer.v3.IntegrationTests.csproj", "{E445F5BD-DE8E-418C-809C-C595494BFED1}"
@@ -107,6 +105,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IBM.WatsonDeveloperCloud.As
107105
EndProject
108106
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IBM.WatsonDeveloperCloud.Assistant.v1.UnitTests", "test\IBM.WatsonDeveloperCloud.Assistant.v1.UnitTests\IBM.WatsonDeveloperCloud.Assistant.v1.UnitTests.csproj", "{3FA3418E-F5C5-463B-B371-FF38093A7D9D}"
109107
EndProject
108+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IBM.WatsonDeveloperCloud.TextToSpeech.v1.Example", "examples\IBM.WatsonDeveloperCloud.TextToSpeech.v1.Example\IBM.WatsonDeveloperCloud.TextToSpeech.v1.Example.csproj", "{B5E2F85E-7A5B-41A0-A2EF-8C678BC0F0C3}"
109+
EndProject
110+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IBM.WatsonDeveloperCloud.PersonalityInsights.v3.IntTests", "test\IBM.WatsonDeveloperCloud.PersonalityInsights.v3.IntTests\IBM.WatsonDeveloperCloud.PersonalityInsights.v3.IntTests.csproj", "{7E050830-759C-4D12-BB8F-57DA8853616D}"
111+
EndProject
110112
Global
111113
GlobalSection(SolutionConfigurationPlatforms) = preSolution
112114
Debug|Any CPU = Debug|Any CPU
@@ -189,10 +191,6 @@ Global
189191
{B401A97F-FD61-4CC9-9392-26324A8E5461}.Debug|Any CPU.Build.0 = Debug|Any CPU
190192
{B401A97F-FD61-4CC9-9392-26324A8E5461}.Release|Any CPU.ActiveCfg = Release|Any CPU
191193
{B401A97F-FD61-4CC9-9392-26324A8E5461}.Release|Any CPU.Build.0 = Release|Any CPU
192-
{89E40543-56DA-4307-8625-074B9FD4EF5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
193-
{89E40543-56DA-4307-8625-074B9FD4EF5A}.Debug|Any CPU.Build.0 = Debug|Any CPU
194-
{89E40543-56DA-4307-8625-074B9FD4EF5A}.Release|Any CPU.ActiveCfg = Release|Any CPU
195-
{89E40543-56DA-4307-8625-074B9FD4EF5A}.Release|Any CPU.Build.0 = Release|Any CPU
196194
{9F8D0C47-3DDD-4423-B594-69A35898869F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
197195
{9F8D0C47-3DDD-4423-B594-69A35898869F}.Debug|Any CPU.Build.0 = Debug|Any CPU
198196
{9F8D0C47-3DDD-4423-B594-69A35898869F}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -261,6 +259,14 @@ Global
261259
{3FA3418E-F5C5-463B-B371-FF38093A7D9D}.Debug|Any CPU.Build.0 = Debug|Any CPU
262260
{3FA3418E-F5C5-463B-B371-FF38093A7D9D}.Release|Any CPU.ActiveCfg = Release|Any CPU
263261
{3FA3418E-F5C5-463B-B371-FF38093A7D9D}.Release|Any CPU.Build.0 = Release|Any CPU
262+
{B5E2F85E-7A5B-41A0-A2EF-8C678BC0F0C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
263+
{B5E2F85E-7A5B-41A0-A2EF-8C678BC0F0C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
264+
{B5E2F85E-7A5B-41A0-A2EF-8C678BC0F0C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
265+
{B5E2F85E-7A5B-41A0-A2EF-8C678BC0F0C3}.Release|Any CPU.Build.0 = Release|Any CPU
266+
{7E050830-759C-4D12-BB8F-57DA8853616D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
267+
{7E050830-759C-4D12-BB8F-57DA8853616D}.Debug|Any CPU.Build.0 = Debug|Any CPU
268+
{7E050830-759C-4D12-BB8F-57DA8853616D}.Release|Any CPU.ActiveCfg = Release|Any CPU
269+
{7E050830-759C-4D12-BB8F-57DA8853616D}.Release|Any CPU.Build.0 = Release|Any CPU
264270
EndGlobalSection
265271
GlobalSection(SolutionProperties) = preSolution
266272
HideSolutionNode = FALSE
@@ -296,7 +302,6 @@ Global
296302
{7DA05E71-3503-4982-AAB6-26C9B76BDD5F} = {8B927AB2-21F8-40DE-BE6B-5B1105453133}
297303
{A6BC7470-79A2-4C7E-923A-748540791D97} = {89D715BF-7464-45FB-8DA0-9D7B46AB8C7F}
298304
{B401A97F-FD61-4CC9-9392-26324A8E5461} = {89D715BF-7464-45FB-8DA0-9D7B46AB8C7F}
299-
{89E40543-56DA-4307-8625-074B9FD4EF5A} = {D65AC99F-4E63-4362-8765-EB6F15838CA0}
300305
{9F8D0C47-3DDD-4423-B594-69A35898869F} = {D65AC99F-4E63-4362-8765-EB6F15838CA0}
301306
{E445F5BD-DE8E-418C-809C-C595494BFED1} = {C7873F44-7188-49BE-84C5-532BE4E07147}
302307
{B1102C7F-58A6-4F2F-A2BC-2D230F0268FA} = {C7873F44-7188-49BE-84C5-532BE4E07147}
@@ -316,6 +321,8 @@ Global
316321
{60793E3F-EF8D-4FF8-9C69-33D1ADBC3C39} = {E3D238D7-7A09-4447-B836-8D6ABF4BFF80}
317322
{8616701B-F226-4462-9949-DE1F2C88B194} = {E3D238D7-7A09-4447-B836-8D6ABF4BFF80}
318323
{3FA3418E-F5C5-463B-B371-FF38093A7D9D} = {E3D238D7-7A09-4447-B836-8D6ABF4BFF80}
324+
{B5E2F85E-7A5B-41A0-A2EF-8C678BC0F0C3} = {A86D4D5B-AECE-49F2-A2BC-F6897B3EB2E8}
325+
{7E050830-759C-4D12-BB8F-57DA8853616D} = {D65AC99F-4E63-4362-8765-EB6F15838CA0}
319326
EndGlobalSection
320327
GlobalSection(ExtensibilityGlobals) = postSolution
321328
SolutionGuid = {B9D9D17B-1C17-402F-B701-DC671528690A}

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Watson Developer Cloud .NET Standard SDK
22
[![Build status](https://ci.appveyor.com/api/projects/status/bcbl2ripwdmh1918/branch/development?svg=true)](https://ci.appveyor.com/project/mediumTaj/dotnet-standard-sdk/branch/development)
33
[![Coverage Status](https://coveralls.io/repos/github/watson-developer-cloud/dotnet-standard-sdk/badge.svg?branch=master)](https://coveralls.io/github/watson-developer-cloud/dotnet-standard-sdk?branch=master)
4+
[![wdc-community.slack.com](https://wdc-slack-inviter.mybluemix.net/badge.svg)](http://wdc-slack-inviter.mybluemix.net/)
45

56
The .Net SDK uses the [Watson Developer Cloud][wdc] services, a collection of REST APIs and SDKs that use cognitive computing to solve complex problems.
67

@@ -70,6 +71,23 @@ void Example()
7071
}
7172
```
7273

74+
## IAM Authentication
75+
You can authenticate using IAM rather than username and password. You can either allow the SDK to manage the token by providing your IAM apikey or manage the token yourself by providing an access token.
76+
```cs
77+
void Example()
78+
{
79+
// Provide either an iamApiKey or iamAccessToken to authenticate the service.
80+
TokenOptions iamAssistantTokenOptions = new TokenOptions()
81+
{
82+
IamApiKey = "<iam-apikey>",
83+
IamAccessToken = "<iam-access-token>"
84+
};
85+
86+
_assistant = new AssistantService(iamAssistantTokenOptions, "<version-date>");
87+
var results = assistant.Message("<workspace-id>", "<message-request>");
88+
}
89+
```
90+
7391
## Documentation
7492
Click [here][dotnet-standard-sdk-documentation] for documentation by release and branch.
7593

appveyor.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version: 2.1.{build}
1+
version: 2.3.{build}
22
branches:
33
except:
44
- gh-pages
@@ -13,12 +13,8 @@ environment:
1313
secure: J0LjUlYl+lGJMLBcOgVF1m1I07nyr+8yFOMaNBA23RGLMJKvYnRlhmGWXp07ejgu
1414
CRED_SECRET:
1515
secure: eEcA/09B7XzeTSb3GlaeqcWfQ/TemXxAq9/0AFM5+z8=
16-
VCAP_URL:
17-
secure: z68QwNPZhdBxLtcf9lx5CrAIJe2AstVlaygEV2vBjfNWpSDTssdX+U5edJZjhk2mZ1u71BOlKd/aOL0yuVn3Ew==
18-
VCAP_USERNAME:
19-
secure: xRHH3z2B+DfQKsmd9CWOhA==
20-
VCAP_PASSWORD:
21-
secure: 3YoxDjzz7qMIbDqokgsB1A==
16+
GITHUB_TOKEN:
17+
secure: 8sr9qy9Ghr7IaCVsf0mvKITy6nb5RZaEScQ3VIPNMJxPzFCkZ688RHIOmW5qWWy5
2218
install:
2319
- cmd: >-
2420
rm -rf packages
@@ -37,7 +33,12 @@ install:
3733
3834
nuget install -Verbosity quiet -OutputDirectory packages secure-file -ExcludeVersion
3935
40-
- ps: dotnet restore
36+
before_build:
37+
- ps: >-
38+
git clone https://$env:[email protected]/germanatt/sdk-credentials.git C:\projects\sdk-credentials
39+
40+
dotnet restore
41+
4142
build:
4243
project: IBM.WatsonDeveloperCloud.sln
4344
verbosity: minimal
@@ -99,7 +100,7 @@ after_build:
99100
100101
Copy-Item C:\projects\dotnet-standard-sdk\test\IBM.WatsonDeveloperCloud.LanguageTranslator.v2.IntegrationTests\glossary.tmx C:\projects\dotnet-standard-sdk\glossary.tmx
101102
test_script:
102-
- ps: "if((Test-Path -Path coverage))\n{\n rm coverage -r -force\n}\nNew-Item -path . -name coverage -itemtype directory\nForEach ($folder in (Get-ChildItem -Path C:\\projects\\dotnet-standard-sdk\\test -Directory)) { \n if($env:APPVEYOR_PULL_REQUEST_NUMBER -eq $null)\n {\n Write-Output \"No pull request number. Executing tests\"\n dotnet test $folder.FullName\n if($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode ) }\n echo \"Test passed: $?\"\n echo \"LastExitCode: $LastExitCode\"\n $openCover = 'C:\\projects\\dotnet-standard-sdk\\packages\\OpenCover.4.6.519\\tools\\OpenCover.Console.exe' \n $targetArgs = '-targetargs: test ' + $folder.FullName + ' -c Release -f netcoreapp1.0'\n $filter = '-filter:+[IBM.WatsonDeveloperCloud*]*-[*Tests*]*-[*Example*]*'\n & $openCover '-target:C:\\Program Files\\dotnet\\dotnet.exe' $targetArgs '-register:user' $filter '-oldStyle' '-mergeoutput' '-hideskipped:File' '-searchdirs:$testdir\\bin\\release\\netcoreapp1.0' '-output:coverage\\coverage.xml'\n }\n else\n {\n Write-Output \"Pull request number is $env:APPVEYOR_PULL_REQUEST_NUMBER. Skipping tests.\"\n }\n }\n\nC:\\projects\\dotnet-standard-sdk\\packages\\ReportGenerator.2.4.5.0\\tools\\ReportGenerator.exe -reports:coverage\\coverage.xml -targetdir:coverage -verbosity:Error\n\nif($env:COVERALLS_REPO_TOKEN)\n{\n C:\\projects\\dotnet-standard-sdk\\packages\\coveralls.net.0.7.0\\tools\\csmacnz.Coveralls.exe --opencover -i coverage\\coverage.xml --useRelativePaths\n}\nelse\n{\n Write-Output \"There is no Coveralls Repo Token - not pushing coverage.\"\n}"
103+
- ps: "if($env:GITHUB_TOKEN)\n{\nif((Test-Path -Path coverage))\n{\n rm coverage -r -force\n}\nNew-Item -path . -name coverage -itemtype directory\nForEach ($folder in (Get-ChildItem -Path C:\\projects\\dotnet-standard-sdk\\test -Directory)) { \n if($env:APPVEYOR_PULL_REQUEST_NUMBER -eq $null)\n {\n Write-Output \"No pull request number. Executing tests\"\n dotnet test $folder.FullName\n if($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode ) }\n echo \"Test passed: $?\"\n echo \"LastExitCode: $LastExitCode\"\n $openCover = 'C:\\projects\\dotnet-standard-sdk\\packages\\OpenCover.4.6.519\\tools\\OpenCover.Console.exe' \n $targetArgs = '-targetargs: test ' + $folder.FullName + ' -c Release -f netcoreapp1.0'\n $filter = '-filter:+[IBM.WatsonDeveloperCloud*]*-[*Tests*]*-[*Example*]*'\n & $openCover '-target:C:\\Program Files\\dotnet\\dotnet.exe' $targetArgs '-register:user' $filter '-oldStyle' '-mergeoutput' '-hideskipped:File' '-searchdirs:$testdir\\bin\\release\\netcoreapp1.0' '-output:coverage\\coverage.xml'\n }\n else\n {\n Write-Output \"Pull request number is $env:APPVEYOR_PULL_REQUEST_NUMBER. Skipping tests.\"\n }\n }\n\nC:\\projects\\dotnet-standard-sdk\\packages\\ReportGenerator.2.4.5.0\\tools\\ReportGenerator.exe -reports:coverage\\coverage.xml -targetdir:coverage -verbosity:Error\n\nif($env:COVERALLS_REPO_TOKEN)\n{\n C:\\projects\\dotnet-standard-sdk\\packages\\coveralls.net.0.7.0\\tools\\csmacnz.Coveralls.exe --opencover -i coverage\\coverage.xml --useRelativePaths\n}\nelse\n{\n Write-Output \"There is no Coveralls Repo Token - not pushing coverage.\"\n}\n}"
103104
artifacts:
104105
- path: '\src\IBM.WatsonDeveloperCloud\bin\$(configuration)\*.nupkg'
105106
name: IBM.WatsonDeveloperCloud

examples/IBM.WatsonDeveloperCloud.Conversation.v1.Example/Example.cs

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@
1717

1818
using System;
1919
using Newtonsoft.Json.Linq;
20-
using System.Threading.Tasks;
2120
using IBM.WatsonDeveloperCloud.Util;
21+
using System.IO;
22+
using Newtonsoft.Json;
2223

2324
namespace IBM.WatsonDeveloperCloud.Conversation.v1.Example
2425
{
@@ -28,31 +29,53 @@ public static void Main(string[] args)
2829
{
2930
string credentials = string.Empty;
3031

31-
try
32-
{
33-
credentials = Utility.SimpleGet(
34-
Environment.GetEnvironmentVariable("VCAP_URL"),
35-
Environment.GetEnvironmentVariable("VCAP_USERNAME"),
36-
Environment.GetEnvironmentVariable("VCAP_PASSWORD")).Result;
37-
}
38-
catch (Exception e)
32+
#region Get Credentials
33+
string _endpoint = string.Empty;
34+
string _username = string.Empty;
35+
string _password = string.Empty;
36+
string _workspaceID = string.Empty;
37+
38+
if (string.IsNullOrEmpty(credentials))
3939
{
40-
Console.WriteLine(string.Format("Failed to get credentials: {0}", e.Message));
41-
}
40+
var parentDirectory = Directory.GetParent(Directory.GetCurrentDirectory()).Parent.Parent.Parent.Parent.Parent.FullName;
41+
string credentialsFilepath = parentDirectory + Path.DirectorySeparatorChar + "sdk-credentials" + Path.DirectorySeparatorChar + "credentials.json";
42+
if (File.Exists(credentialsFilepath))
43+
{
44+
try
45+
{
46+
credentials = File.ReadAllText(credentialsFilepath);
47+
credentials = Utility.AddTopLevelObjectToJson(credentials, "VCAP_SERVICES");
48+
}
49+
catch (Exception e)
50+
{
51+
throw new Exception(string.Format("Failed to load credentials: {0}", e.Message));
52+
}
4253

43-
Task.WaitAll();
54+
VcapCredentials vcapCredentials = JsonConvert.DeserializeObject<VcapCredentials>(credentials);
55+
var vcapServices = JObject.Parse(credentials);
4456

45-
var vcapServices = JObject.Parse(credentials);
46-
var _url = vcapServices["conversation"]["url"];
47-
var _username = vcapServices["conversation"]["username"];
48-
var _password = vcapServices["conversation"]["password"];
49-
var _workspaceID = "506e4a2e-3d5d-4dca-b374-38edbb4139ab"; //vcapServices["conversation"]["workspace_id"];
57+
Credential credential = vcapCredentials.GetCredentialByname("conversation-sdk")[0].Credentials;
58+
_endpoint = credential.Url;
59+
_username = credential.Username;
60+
_password = credential.Password;
61+
_workspaceID = credential.WorkspaceId;
62+
}
63+
else
64+
{
65+
Console.WriteLine("Credentials file does not exist. Please define credentials.");
66+
_username = "";
67+
_password = "";
68+
_endpoint = "";
69+
_workspaceID = "";
70+
}
71+
}
72+
#endregion
5073

5174
// Uncomment to run the service example.
52-
//ConversationServiceExample _conversationExample = new ConversationServiceExample(_url.ToString(), _username.ToString(), _password.ToString(), _workspaceID.ToString());
75+
ConversationServiceExample _conversationExample = new ConversationServiceExample(_endpoint, _username, _password, _workspaceID);
5376

5477
// Uncomment to run the context example.
55-
ConversationContextExample _converationContextExample = new ConversationContextExample(_url.ToString(), _username.ToString(), _password.ToString(), _workspaceID.ToString());
78+
ConversationContextExample _converationContextExample = new ConversationContextExample(_endpoint, _username, _password, _workspaceID);
5679

5780
Console.ReadKey();
5881
}

examples/IBM.WatsonDeveloperCloud.Conversation.v1.Example/IBM.WatsonDeveloperCloud.Conversation.v1.Example.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<VersionPrefix>2.2.1</VersionPrefix>
4+
<VersionPrefix>2.2.2</VersionPrefix>
55
<TargetFramework>netcoreapp1.0</TargetFramework>
66
<AssemblyName>IBM.WatsonDeveloperCloud.Conversation.v1.Example</AssemblyName>
77
<OutputType>Exe</OutputType>
@@ -10,7 +10,7 @@
1010
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
1111
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
1212
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
13-
<Version>2.2.1</Version>
13+
<Version>2.2.2</Version>
1414
</PropertyGroup>
1515

1616
<ItemGroup>

0 commit comments

Comments
 (0)