小编Mot*_*tor的帖子

是否可以通过支持的平台过滤nuget包?

例如,如果我只想要.Net Platform Standard的软件包.现在我正在寻找一个包,尝试安装它,得到:

error: Package <name> is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). 
Package <name> supports: portable-win81+wpa81 (.NETPortable,Version=v0.0,Profile=Profile32)
error: One or more packages are incompatible with .NETCoreApp,Version=v1.0.
Run Code Online (Sandbox Code Playgroud)

我必须重新开始 我看到了支持的平台.这意味着,信息就在那里.

编辑:如果我可以在Visual Studio中设置过滤器会更好,但我没有看到,我还没有在nuget.org中看到它.所以问题是:有没有办法只为特定平台获取包(这意味着通过平台搜索过滤器).我感兴趣的是.Net Platform Standard.我希望,你在这里看不到任何模糊的东西.

编辑: 这是来自nuget.org 的搜索API

<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" Version="1.0">
    <edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="2.0" m:MaxDataServiceVersion="2.0">
        <Schema xmlns="http://schemas.microsoft.com/ado/2006/04/edm" Namespace="NuGetGallery.OData">
            <EntityType Name="V2FeedPackage" m:HasStream="true">...</EntityType>
        </Schema>
        <Schema xmlns="http://schemas.microsoft.com/ado/2006/04/edm" Namespace="NuGetGallery">
            <EntityContainer Name="V2FeedContext" m:IsDefaultEntityContainer="true">
                <EntitySet Name="Packages" EntityType="NuGetGallery.OData.V2FeedPackage"/>
                <FunctionImport Name="Search" ReturnType="Collection(NuGetGallery.OData.V2FeedPackage)" EntitySet="Packages">
                    <Parameter Name="searchTerm" Type="Edm.String" FixedLength="false" Unicode="false"/>
                    <Parameter Name="targetFramework" Type="Edm.String" FixedLength="false" Unicode="false"/>
                    <Parameter Name="includePrerelease" Type="Edm.Boolean" Nullable="false"/>
                </FunctionImport> …
Run Code Online (Sandbox Code Playgroud)

c# .net-core asp.net-core-1.0

22
推荐指数
1
解决办法
2338
查看次数

Azure AD错误代码90094

我有一个Excel插件,它使用Azure AD(ADAL)进行身份验证.我已经制作了应用程序的第二个副本以及Azure AD中所需的更改.所有用户都可以使用第一个应用.第二个应用程序我是唯一可以登录的人.他们拥有与第一个应用程序相同的权限.Azure在登录时提供的错误是:

错误代码:90094

错误原因:其他

我找不到此错误的信息.返回给用户的是"管理员必须为此应用程序授予权限".但是给予了特权.像在第一个应用程序中一样.

你有这个错误代码的任何信息吗?

PS我发现,这与应用程序所需的权限相关联.如果我添加一个用户,即Azure AD中的全局管理员,登录后会出现一个窗口"应用程序需要权限:...(接受,取消)"之后,他可以使用该应用程序,即使他是改为普通用户.如果用户是普通的Azure AD用户,则不会显示此窗口,并且他会被错误90094拒绝.对于有限管理员的用户也会发生同样的情况,并且对于他拥有的管理员角色无关紧要.

PS 2

根据我的支持请求,Microsoft支持人员没有告诉我这个错误意味着什么("这是一个自定义应用程序,并且没有关于此错误的信息.如果这是一个企业应用程序,将会有信息").

删除应用程序注册并再次进行后,不再存在这样的问题.我无法重现它(我努力尝试:)).如果你给我一个答案,我无法证明这一点.所以你可以把这个问题视为已关闭.

azure

15
推荐指数
1
解决办法
3289
查看次数

在.Net Core 1.0中运行时编译和运行代码

是否可以在新的.Net Core(更好的.Net标准平台)中运行时编译和运行c#代码?我见过一些例子(.Net Framework),但是使用过的NuGet包

与netcoreapp1.0不兼容(.NETCoreApp,Version = v1.0)

c# .net-core .net-core-rc2

13
推荐指数
3
解决办法
7075
查看次数

大数组如何分配内存?

我正在寻找一种方法将大的3D稀疏数组结构保存到内存中而不会浪费大量内存.在这里,我做了一个longs数组的实验:

using System;
using System.Diagnostics;
using System.Runtime;

namespace ConsoleApp4
{
    public class Program
    {
        static Process proc = Process.GetCurrentProcess();
        const int MB = 1024 * 1024;
        const int IMAX = 5;
        const int JMAX = 100000000;
        public static void ShowTextWithMemAlloc(string text)
        {
            proc.Refresh();
            Console.WriteLine($"{text,-30}WS64:{proc.WorkingSet64/MB,5}MB  PMS64:{proc.PrivateMemorySize64/MB,5}MB");
            Console.ReadKey();
        }
        public static void Main(string[] args)
        {
            Console.Write(" ");
            ShowTextWithMemAlloc("Start.");
            long[] lArray = new long[IMAX * JMAX];
            long[] l1Array = new long[IMAX * JMAX];
            long[] l2Array = new long[IMAX * JMAX];
            long[] l3Array = …
Run Code Online (Sandbox Code Playgroud)

c# arrays .net-core-rc2

8
推荐指数
1
解决办法
392
查看次数

字典计数大于89478457时出错

我正在接受这个命令

Dictionary<UInt64, int> myIntDict = new Dictionary<UInt64, int>(89478458);
Run Code Online (Sandbox Code Playgroud)

这个错误:

System.OutOfMemoryException was unhandled  HResult=-2147024882
Message=Array dimensions exceeded supported range.
Source=mscorlib
StackTrace:
   at System.Collections.Generic.Dictionary`2.Initialize(Int32 capacity)
   at System.Collections.Generic.Dictionary`2..ctor(Int32 capacity, IEqualityComparer`1 comparer)
Run Code Online (Sandbox Code Playgroud)

在89478457上没有错误.以下是Dictionary.cs中Initialize的来源:

    private void Initialize(int capacity)
    {
        int size = HashHelpers.GetPrime(capacity);
        ...
        entries = new Entry[size];
        ...
    }
Run Code Online (Sandbox Code Playgroud)

当我重现它时,错误发生在数组创建上.在这种情况下,条目是一个结构,大小为24.当我们得到max int32(0x80000000-1)并除以24 = 89478485时,这个数字在素数89478457和89478503之间.

这是否意味着,结构数组不能像maxInt32/sizeOfThisStruct那样大?

编辑:

是.我实际上超过2 GB.当字典创建struct Entry的内部数组时,会发生这种情况,其中存储了(键,值)对.在我的例子中,sizeof(Entry)是24个字节,并且值类型是内联分配的.

解决方案是使用gcAllowVeryLargeObjects 标志(谢谢Evk).实际上在.net核心中,标志是环境变量 COMPlus_gcAllowVeryLargeObjects(谢谢svick).

是的,狗仔队是对的.我要思考,怎么不浪费记忆.谢谢你们.

c# .net-core .net-core-rc2

0
推荐指数
1
解决办法
2362
查看次数

标签 统计

c# ×4

.net-core ×3

.net-core-rc2 ×3

arrays ×1

asp.net-core-1.0 ×1

azure ×1