Tag: .net standard

如何在.NET Standard项目中使用EnvDTE

我正在将.net 4.7项目移植到.net标准,它使用T4生成一些代码。 我迭代了类,属性和方法。 这种用法可以很好地工作,但是现在DTE的返回类型是’System .__ ComObject’类型,我无法强制转换它们。 错误:无法将“System .__ ComObject”类型的COM对象强制转换为接口类型“EnvDTE.CodeClass”。 此操作失败,因为对于具有IID'{B1F42514-91CD-4D3A-8B25-A317D8032B24}的接口的COM组件的QueryInterface调用由于以下错误而失败:不支持此类接口(来自HRESULT的exception:0x80004002(E_NOINTERFACE)) 。 任何想法如何解决这一问题? 例: public static bool CheckBase(CodeClass codeClass, string baseName) { var bases = codeClass.Bases; if (bases != null) { foreach (CodeClass baseClass in bases) { if(baseClass.Name == baseName) return true; } } return false; }

UWP应用程序:无法加载文件或程序集’System.Runtime.WindowsRuntime,Version = 4.0.14.0

我有一个使用.Net Standard 1.4使用Xamarin构建的UWP应用程序我最近升级了几个我的nuget插件,我的UWP项目开始给我以下错误: “System.IO.FileLoadException:无法加载文件或程序集’System.Runtime.WindowsRuntime,Version = 4.0.14.0,Culture = neutral,PublicKeyToken = b77a5c561934e089’。定位程序集的清单定义与程序集引用不匹配。(例外情况HRESULT:0x80131040)\ r \ n“ 现在通常这很简单,你只需要添加对.dll的引用。 所以我在这里找到了nuget包并将它添加到我的UWP项目并构建。 现在最初在nuget包页面上我看不到版本4.0.14但无论如何我安装了最新版本(4.3.0)。 但我仍然得到相同的错误,当我检查bin文件夹中该库的版本时,它会报告V4.0.12 ,那么我从哪里获取该库的V4.0.14? 额外信息 我在互联网上唯一提到的这个版本的dll就在这里 此更新仅作为Microsoft.NETCore.UniversalWindowsPlatform的一部分发布,您必须针对我上面列出的API定位Fall Creator的更新或更高版本。 这将获得以下版本的程序集(4.0.3.0是最新的独立版): System.Runtime.WindowsRuntime,Version = 4.0.14.0,Culture = neutral,PublicKeyToken = b77a5c561934e089 因此,现在暂时禁用.NET 4.6.1和.NET Core 2.0-通用Windows平台10.0.16299。

如何从UWP访问Net Standard 2.0类库中的内容

我们有一个UWP应用程序,它引用了一个UWP类库。 UWP类库有一个Common文件夹,其中包含运行时所需的文件。 这些文件标记为“复制为内容”。 文件将复制到..\UWP\bin\x64\Debug\Appx\\Common 。 应用程序在运行时在package.InstalledLocation\\Common查找这些文件 UWP类库现在是.NET Standard 2.0类库。 在运行时,Common文件夹现在被复制到与Appx文件夹相同级别的文件夹..\UWP\bin\x64\Debug\Common ,我无法访问。 我试过了 StorageFolder installedFolder = package.InstalledLocation; StorageFolder parentFolder = await installedFolder.GetParentAsync(); 但是parentFolder返回null 。 如何访问.NET Standard 2.0类库中的内容文件和文件夹?

如何使用ADAL,NetStandard和Azure AD在没有提示CRM Dynamics Online Web服务的情况下进行身份validation

我目前正在尝试创建一个Xamarin应用程序,以便从Dynamics 365在线实例中获取一些信息。 使用AD进行身份validation并访问CRM API的代码将在NetStandard(v1.6)库中逐出。 我使用以下NuGets: Microsoft.IdentityModel.Clients.ActiveDirectory(3.13.9) NETStandard.Library(1.6.1) 我按照以下教程将AD与我的Dynamics实例链接: https : //nishantrana.me/2016/11/13/register-a-dynamics-365-app-with-azure-active-directory/ 这是我的ActiveDirectory助手: public static class ADHelper { public async static Task GetAuthAsync(Uri uri, ClientCredential creditential) { AuthenticationParameters ap = await AuthenticationParameters.CreateFromResourceUrlAsync(uri); String authorityUrl = ap.Authority; String resourceUrl = ap.Resource; AuthenticationResult result = null; AuthenticationContext authContext = new AuthenticationContext(authorityUrl, false); result = await authContext.AcquireTokenAsync(resourceUrl, creditential); return […]

.NET Standard – 以编程方式将证书和私钥合并到.pfx文件中

有没有办法将证书和密钥(两者都作为Base64字符串从服务中单独接收)组合成一个.pfx文件,使用C#/。NET标准编程 ? 使用工具不是一种选择,因为我需要自动化它。 上下文:我需要将证书和私钥(不带页眉和页脚的单独Base64字符串)加载到X509Certificate2对象,以将其从.NET Standard 1.6库传递到应用程序。 问题是,.NET Standard中的X509Certificate2类中没有PrivateKey属性! 因此,我在X509Certificate2对象中实际加载私钥的唯一方法是将它与证书本身在.pfx文件中组合,并在构造函数中加载它。

.NET Standard是否在其支持的每个平台上规范化HResult值?

我正在创建一个创建随机文件的简单函数。 为了线程安全,它在重试循环中创建文件,如果文件存在,则再次尝试。 while (true) { fileName = NewTempFileName(prefix, suffix, directory); if (File.Exists(fileName)) { continue; } try { // Create the file, and close it immediately using (var stream = new FileStream(fileName, FileMode.CreateNew, FileAccess.Write, FileShare.Read)) { break; } } catch (IOException e) { // If the error was because the file exists, try again if ((e.HResult […]

ConfigurationManager.AppSettings是否在.NET Core 2.0中可用?

我有一个从我的配置文件中读取设置的方法,如下所示: var value = ConfigurationManager.AppSettings[key]; 只针对.NET Standard 2.0时,它编译得很好。 现在我需要多个目标,所以我用以下内容更新了我的项目文件: netcoreapp2.0;net461;netstandard2.0 但是现在, netcoreapp2.0的编译失败, netcoreapp2.0以下错误消息: Error CS0103 The name ‘ConfigurationManager’ does not exist in the current context (netcoreapp2.0) 另外,我创建了一个新的.NET Core 2.0控制台应用程序(这次只针对.NET Core 2.0),但同样在命名空间System.Configuration下似乎没有ConfigurationManager 。 我很困惑因为它在.NET Standard 2.0下可用,所以我希望它可以在.NET Core 2.0中使用,因为.NET Core 2.0符合.NET Standard 2.0。 我错过了什么?

NuGet包应该支持哪些.NET版本以最大化其可用性和function?

TL; DR: 鉴于:我编写了一个具有相对便携function的库(例如, Left.Pad.©.dll )。 我想通过NuGet让它可用。 要求:如果有人想在任何操作系统的任何版本上通过在任何 IDE或任何代码编辑器中编写代码来安装任何更新的任何版本的任何平台上使用我的库,他们应该能够这样做。 问题:实现该目标的最小 NuGet 目标框架是什么? 奖金问题:如果存在任何不应该被定位的“死”框架,或者在选择目标框架时应该考虑的其他内容,您也可以提及它。 思想(旧版): NuGet包支持多个.NET Framework版本和配置文件 ,例如,包可以提供net20,net30,net35,net40,net45,sl3,sl4,sl5等版本。 但是,假设包的function并不总是存在差异 ,提供大量版本将浪费构建时间和包大小,并导致不必要的复杂性。 另一方面,仅为最低支持的Framework版本提供软件包可能会导致function丢失,例如.NET 4支持多个CLR版本的进程内并行执行,但以前的版本不支持,因此此function如果只提供.NET 3.5的版本(我不确定;我从未使用它并且不知道细节),将会丢失。 如果提供了PCL版本,逻辑很简单我假设:只排除PCL涵盖的版本。

新的.csproj格式 – 如何将整个目录指定为“链接文件”到子目录?

使用新的.csproj格式(以及旧格式),可以将文件添加到项目文件夹之外的链接: 也可以使用glob模式来包含多个文件: 但是你如何将两者结合起来呢? 我试过的 前两个只创建一个链接文件(分别名称为*.cs和* )。 第三个只是出错了。 有没有办法将globbing和链接文件组合到目标项目中的特定位置? 如果没有,我如何链接目录中的所有文件而不知道他们的名字有多少或者是什么?

从Windows类库引用.NET标准库

目前我的解决方案中有两个项目: Windows类库(针对.NET Framework 4.6.1)和另一个面向.NET Standard 1.3的类库。 我正在使用Visual Studio 2015 Update 3。 我从其他项目添加了对.NET Standard项目的引用,它出现在引用列表中,但是当我想使用它时,我看不到引用库中的任何类或命名空间(即使引用的库已成功构建且没有错误)。 这是.NET标准库项目的project.json: { “version”: “1.0.0-*”, “dependencies”: { “NETStandard.Library”: “1.6.0” }, “frameworks”: { “netstandard1.3”: { “imports”: “dnxcore50” } } } 我认为.NET 4.6.1项目可以使用.NET Standard 1.3库,我甚至尝试使用较低版本(1.0),但结果是一样的。 我在这里想念的是什么? 如果我跑 dotnet恢复 它也工作正常: log : Restoring packages for C:\Users\Zsolt\Documents\Visual Studio 2015\Projects\PWB\PWBSpreadsheet.Entities\project.json… log : Restoring packages for C:\Users\Zsolt\Documents\Visual Studio 2015\Projects\PWB\PWBSpreadsheet.Parser\project.json… […]