小编rh0*_*005的帖子

使用NuGet.Core以编程方式推送NuGet包

我目前正在使用命令行工具打包一些文件并将它们推送到我们的一台服务器上的NuGet Feed中.我没有使用命令行工具,而是使用Nuget.Core设置了一个项目,并成功设法创建了一个包.我现在正试图通过NuGet.Core将我的机器上的软件包推送到NuGet feed.使用看起来像这样的命令行工具(我也得到了它):

nuget.exe push package.nupkg -ApiKey MYAPIKEY -Source http://nugetpackagefeedaddress
Run Code Online (Sandbox Code Playgroud)

我想要做的是使用NuGet.Core复制推送功能.我到目前为止最接近的是获取两个存储库PackageRepositoryFactory,一个用于本地计算机路径,另一个用于包源,然后从本地一个包中检索包,并尝试将其添加到Feed中,如下所示:

var remoteRepo = PackageRepositoryFactory.Default.CreateRepository("myNugetPackagefeedUrl");
var localRepo = PackageRepositoryFactory.Default.CreateRepository(@"locationOfLocalPackage");
var package = localRepo.FindPackagesById("packageId").First();
remoteRepo.AddPackage(package);
Run Code Online (Sandbox Code Playgroud)

此代码导致NotSupportedException声明"不支持指定的方法"

是否可以使用NuGet.Core推送包?以上代码我是否接近它?

注意:我知道我可以将调用包装到nuget.exe并从.NET调用,但是我要么从NuGet.Core打包并推送,要么通过将调用包装到nuget.exe而不是一半来执行.半

c# nuget nuget-package

9
推荐指数
1
解决办法
3154
查看次数

索引对象的安全导航

随着Roslyn的推出,C#获得了安全导航运营商的优势.这对于使用点符号的对象来说非常棒

MyClass myClass = null;
var singleElement = myClass?.ArrayOfStrings[0];
Run Code Online (Sandbox Code Playgroud)

在这个例子中,myClass为null,但安全操作符使我免于异常. 

我的问题是,如果你有一个索引对象是否有安全导航运算符的等效实现?需要它的一个例子如下所示:

var myClass2 = new MyClass { ArrayOfStrings = null };
var singleElement2 = myClass2?.ArrayOfStrings[0];
Run Code Online (Sandbox Code Playgroud)

在这个例子中,myClass2不是null,而是ArrayOfStrings属性,因此当我尝试访问它时,它将抛出异常.因为ArrayOfStrings和索引之间没有点符号,所以我无法添加安全的nav操作符.  

因为这是一个数组,我可以通过以下方式使用安全导航操作符,但这不适用于其他集合,如Lists和DataRows

var myClass3 = new MyClass { ArrayOfStrings = null };
var singleElement3 = myClass3?.ArrayOfStrings?.GetValue(0);
Run Code Online (Sandbox Code Playgroud)

c# operators roslyn c#-6.0

5
推荐指数
1
解决办法
1046
查看次数

使用客户端证书验证保护特定的 nginx-ingress 位置

我正在设置一个 ghost 实例,并试图通过客户端证书验证来保护 /ghost 路径。

我已经启动并运行了一个初始入口,它非常高兴地为站点提供了指定为 / 的路径。

我正在尝试为 /ghost 路径添加第二个入口(大致相同)。如果我这样做并为基本身份验证添加注释,一切似乎都有效。即,如果我浏览到 /ghost,系统会提示我输入基本身份验证密钥中的凭据,如果我浏览到任何其他 URL,则无需身份验证即可提供。

然后我根据这个例子切换到客户端证书验证:https : //github.com/kubernetes/ingress-nginx/tree/master/docs/examples/auth/client-certs

当我尝试这个时,要么整个站点都受到保护,要么没有一个站点受到保护,而不是基于路径的分离,我得到了基本身份验证。从正在运行的 pod 中查看 nginx.conf,在根 / 路径和 /ghost 路径下添加了 proxy_set_header ssl-client-verify, proxy_set_header ssl-client-subject-dn&proxy_set_header ssl-client-issuer-dn元素。我试过删除那些(仅从根目录)并将配置直接复制回 pod,但也没有运气。

我正在通过 Helm 将 nginx-ingress(图表版本 0.23.0)作为依赖项引入

/位置的入口定义- 这个有效

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    certmanager.k8s.io/cluster-issuer: letsencrypt-staging
    kubernetes.io/ingress.class: nginx
    kubernetes.io/tls-acme: "true"
  labels:
    app: my-app
    chart: my-app-0.1.1
    heritage: Tiller
    release: my-app
  name: my-app
  namespace: default
spec:
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          serviceName: my-app
          servicePort: …
Run Code Online (Sandbox Code Playgroud)

ssl nginx kubernetes kubernetes-helm nginx-ingress

5
推荐指数
1
解决办法
2456
查看次数