Manually trying the method outlined by @dbrennand in his last comment an another issue using Windows Powershell (5.1), I got a new error with PowerShellGet 3.0.17:
PS> Publish-PSResource -Credential $cred -Repository RepName -Path .\path\to\module.psd1
Publish-PSResource : Could not load file or assembly 'System.Security.Cryptography.ProtectedData, Version=4.0.2.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file
specified.
At line:1 char:1
+ Publish-PSResource -Credential $cred -Repository RepoName -Path .\path\to...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidResult: (:) [Publish-PSResource], ArgumentException
+ FullyQualifiedErrorId : PushNupkgError,Microsoft.PowerShell.PowerShellGet.Cmdlets.PublishPSResource
The type appeared as though it was available on my system as I could use the accelerators to do tab-completion of methods on the referenced type. Looking into my GAC, it looked like the PublicKeyToken was associated with a different version of the System.Security assembly:
Searching further for 'PowerShellGet' and 'System.Security.Cryptography.ProtectedData' revealed an unrelated issue which indicated that there's a .NET Core assembly named 'System.Security.Cryptography.ProtectedData.dll'. This gave a hint that Publish-PSResource/PowerShellGet was maybe trying to load the .NET Core assembly (which I don't have installed).
With that in mind, I installed PowerShell 7.2 and ran Publish-PSResource from there, successfully publishing the module without issue.
Expected behavior
PS> Publish-PSResource -Credential (get-secret PSRepository) -Repository Repo -Path .\Documents\WindowsPowerShell\Modules\moduleName\moduleName.psd1 -Verbose
Vault SecretStore requires a password.
Enter password:
*************************
VERBOSE: Performing the operation "Publish-PSResource" on target "Publish resource 'C:\Users\user\Documents\WindowsPowerShell\Modules\moduleName\moduleName.psd1' from the machine".
VERBOSE: Creating new nuspec file.
VERBOSE: The newly created nuspec is: C:\Users\user\AppData\Local\Temp\64d5dc26-f293-40ae-8ba6-79a3dc2a760d\moduleName.nuspec
VERBOSE: Successfully packed the resource into a .nupkg
VERBOSE: Successfully published the resource to '<nuget feed URI>'
VERBOSE: Deleting temporary directory 'C:\Users\user\AppData\Local\Temp\64d5dc26-f293-40ae-8ba6-79a3dc2a760d'
Actual behavior
PS> Publish-PSResource -Credential (get-secret PSRepository) -Repository Repo -Path .\Documents\WindowsPowerShell\Modules\moduleName\moduleName.psd1 -Verbose
Vault SecretStore requires a password.
*************************
VERBOSE: Performing the operation "Publish-PSResource" on target "Publish resource
'C:\Users\user\Documents\WindowsPowerShell\Modules\moduleName\moduleName.psd1' from the machine".
VERBOSE: Creating new nuspec file.
VERBOSE: The newly created nuspec is:
C:\Users\user\AppData\Local\Temp\f0ae87df-1c0c-4b97-aaa3-dc60418caca5\moduleName.nuspec
VERBOSE: Searching in repository Repo
VERBOSE: credential successfully set for repository: Repo
VERBOSE: Successfully packed the resource into a .nupkg
Publish-PSResource : Could not load file or assembly 'System.Security.Cryptography.ProtectedData, Version=4.0.2.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file
specified.
At line:1 char:1
+ Publish-PSResource -Credential (get-secret PSRepository) -Repository ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidResult: (:) [Publish-PSResource], ArgumentException
+ FullyQualifiedErrorId : PushNupkgError,Microsoft.PowerShell.PowerShellGet.Cmdlets.PublishPSResource
VERBOSE: Deleting temporary directory 'C:\Users\user\AppData\Local\Temp\f0ae87df-1c0c-4b97-aaa3-dc60418caca5'
Error details
Publish-PSResource : Could not load file or assembly 'System.Security.Cryptography.ProtectedData, Version=4.0.2.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file
specified.
At line:1 char:1
+ Publish-PSResource -Credential (get-secret PSRepository) -Repository ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidResult: (:) [Publish-PSResource], ArgumentException
+ FullyQualifiedErrorId : PushNupkgError,Microsoft.PowerShell.PowerShellGet.Cmdlets.PublishPSResource
Environment data
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Binary 3.0.17 powershellget {Find-PSResource, Get-PSResource, Get-PSResourceRepository...
Script 2.2.5 PowerShellGet {Find-Command, Find-DscResource, Find-Module, Find-RoleCap...
Key : PSVersion
Value : 5.1.19041.1682
Name : PSVersion
Key : PSEdition
Value : Desktop
Name : PSEdition
Key : PSCompatibleVersions
Value : {1.0, 2.0, 3.0, 4.0...}
Name : PSCompatibleVersions
Key : BuildVersion
Value : 10.0.19041.1682
Name : BuildVersion
Key : CLRVersion
Value : 4.0.30319.42000
Name : CLRVersion
Key : WSManStackVersion
Value : 3.0
Name : WSManStackVersion
Key : PSRemotingProtocolVersion
Value : 2.3
Name : PSRemotingProtocolVersion
Key : SerializationVersion
Value : 1.1.0.1
Name : SerializationVersion
@aproposts, as of 3.0.21-beta21 we're building against net472, so this is no longer an issue. If you're still hitting this problem feel free to open up another issue.
Prerequisites
Steps to reproduce
Manually trying the method outlined by @dbrennand in his last comment an another issue using Windows Powershell (5.1), I got a new error with PowerShellGet 3.0.17:
The type appeared as though it was available on my system as I could use the accelerators to do tab-completion of methods on the referenced type. Looking into my GAC, it looked like the PublicKeyToken was associated with a different version of the System.Security assembly:
Searching further for 'PowerShellGet' and 'System.Security.Cryptography.ProtectedData' revealed an unrelated issue which indicated that there's a .NET Core assembly named 'System.Security.Cryptography.ProtectedData.dll'. This gave a hint that
Publish-PSResource
/PowerShellGet was maybe trying to load the .NET Core assembly (which I don't have installed).With that in mind, I installed PowerShell 7.2 and ran
Publish-PSResource
from there, successfully publishing the module without issue.Expected behavior
Actual behavior
Error details
Environment data
Visuals
No response