我正在编写一个将由二进制 PowerShell 模块使用的 .Net Standard 2.0 库。该库基本上是一个 API 客户端,具有许多用于处理 JSON 响应的类。在尝试反序列化字符串之前,我确认 API 提供了 JSON 编码的字符串,没有问题。
由于在使用 NuGet 包时它与 .Net Standard 2.0兼容,我想我会尝试切换到 System.Text.Json,而不是使用 NewtonSoft。但是,它似乎没有在某些平台上所需的特定程序集的版本。
我的环境:
Windows 10
PowerShell 5.1 桌面
.Net Framework 4.8
PowerShell Core 6.2.2
dotnet 版本 3.0.100
在PowerShell Desktop 上,当它必须反序列化任何东西时,我会遇到以下问题:
PS dir:\> Import-Module '.\file.dll'
PS dir:\> [namespace.class]::TestMethod($string, $anotherString) # Test method to return string
{"attribute":"value"}
PS dir:\> [namespace.class]::Method($string, $anotherString) # Same as above, but uses System.Text.Json to deserialise
Could not load file or assembly 'System.Buffers, …Run Code Online (Sandbox Code Playgroud) 我正在工作中构建一个新的 .Net Core 2.2 网站,并尝试了几种不同的方法,但在设置 CRUD 模型后使用“编辑”功能时收到错误。最初我从数据库优先方法开始,然后在尝试编辑项目时收到 DbUpdateConcurrencyException。我认为我的数据库或表有问题,所以开始了一个新项目,从新项目中的模型和上下文创建数据库。
环境:
几个月前,我建立了另一个具有相同环境的站点,但没有这样做。
创建步骤:
检查网站运行正常
创建模型和上下文
文件集.cs
using System;
using System.ComponentModel.DataAnnotations;
namespace TestSite.Models
{
public class Fileset
{
public long Id { get; set; }
public string Ticket { …Run Code Online (Sandbox Code Playgroud) 我想知道 Azure 专家中是否有人可以澄清New-AzureADApplication. 当我在 PowerShell 中创建应用程序注册时,它似乎在 GUI 中添加了一个user_impersonation下划线。Expose and API > Scopes defined by this API当我在 GUI 中创建应用程序注册时,我会为其提供名称并在必要时提供重定向 URI,但user_impersonation不会创建此范围。
我认为这可能与模块有关AzureAD,并且它与 Azure AD 的特定连接有关,但使用时的行为是相同的New-AzADApplication,除了此 cmdlet-IdentifierUris也需要指定 - 这对于所有应用程序来说并不是必需的我们注册。
OAuth2Permissions当我通过 PowerShell 创建应用程序注册时,是否有办法避免添加?
我尝试过的其他事情:
设置-OAuth2Permissions为[System.Collections.Generic.List`1[[Microsoft.Open.AzureAD.Model.OAuth2Permission, Microsoft.Open.AzureAD16.Graph.Client, Version=0.1.599.7, Culture=neutral, PublicKeyToken=null]]
用于Get-AzureADOAuth2PermissionGrant尝试查找权限并在之后将其删除。它不在那里。
如果我在创建时无法避免或删除它,那么请提供以下信息:
例子:
Connect-AzureAD
$GraphRead = Get-AzureADServicePrincipal -All $true | Where-Object {$_.AppId -eq '00000003-0000-0000-c000-000000000000'}
$RRA = New-Object -TypeName "Microsoft.Open.AzureAD.Model.RequiredResourceAccess"
$RRA.ResourceAppId …Run Code Online (Sandbox Code Playgroud) 我正在尝试为我们拥有的应用程序编写一个基于 cmdlet 的 PowerShell 模块。在初始连接 cmdlet 之后,我想在用户打开当前 PowerShell 窗口时将值存储在某处。其中一个值是我根据用户凭据创建的身份验证密钥,以后调用时需要它,而无需为每个操作提供凭据。
我认为在 C# 的自定义对象中获取和设置这些可能很容易,但我正在努力让它应用于当前运行空间。我承认,我对 C# 也很陌生。
这是我以最小形式进行的最成功尝试的示例,即这将评估为真,但是,它不是相同的运行空间。如果我在 PowerShell 中调用 $item,它显然不知道我在做什么。
using System.Management.Automation.Runspaces;
namespace Test
{
public class VariableTest
{
public bool CreateVariable()
{
var runSpace = RunspaceFactory.CreateRunspace();
runSpace.Open();
runSpace.SessionStateProxy.SetVariable("item", "FooBar");
var a = runSpace.SessionStateProxy.PSVariable.GetValue("item");
if (a.ToString() == "FooBar")
{
return true;
}
else
{
return false;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我在 PowerShell 中编写这个模块,我可能只是将它们保存在一个全局变量中。任何人都可以帮助获取和设置这些值,以便我可以在 PowerShell 控制台中调用 item 吗?或者这是非常错误的,并且已经存在一些东西来解释我错过的 C# 中的持久模块范围变量。
我正在尝试通过 IIS10 上的 PM2 在 Windows Server 2016 上使用 Node.js 版本 12.14.0运行Docusaurus 。我正在使用 PM2,因此我可以在服务器重新启动后重新启动应用程序。我现在必须承认,今天是我第一次尝试使用 Node.js,所以请耐心等待。
这通常通过在 Docusaurus 目录中调用来运行。npm run start在测试 Node.js 以及“Hello World”应用程序是否会在服务器重新启动时启动时,我使用了ecosystem.config.jsPM2 文档中建议的方法。这称为一个 javascript 文件,如下所示。
module.exports = {
apps: [
{
name: "HelloWorld",
script: "apps\\hello_world.js",
instances: 1
}
]
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我找不到任何有关如何npm start从该文件运行的文档(尽管我确实尝试调用单独的批处理文件,但这也不起作用)。然后我在这里看到我可以调用一个记录了更多选项的 JSON 文件。
JSON 配置文件:
{
"apps": [
{
"name": "docs",
"cwd": "apps\\docs",
"script": "npm",
"args": "start"
},
{
"name": "HelloWorld",
"script": "apps\\hello_world.js"
}
]
}
Run Code Online (Sandbox Code Playgroud)
“HelloWorld”脚本启动,但文档应用程序不启动。 …
c# ×3
powershell ×2
.net-core ×1
asp.net-core ×1
azure ×1
docusaurus ×1
ef-core-2.2 ×1
node.js ×1
npm ×1
pm2 ×1