小编Ale*_*éau的帖子

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

我有一个从我的配置文件中读取设置的方法,如下所示:

var value = ConfigurationManager.AppSettings[key];
Run Code Online (Sandbox Code Playgroud)

只针对.NET Standard 2.0时,它编译得很好.

现在我需要多个目标,所以我用以下内容更新了我的项目文件:

<TargetFrameworks>netcoreapp2.0;net461;netstandard2.0</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)

但现在,编译失败netcoreapp2.0,出现以下错误消息:

Error   CS0103  The name 'ConfigurationManager' does not exist in the current context   (netcoreapp2.0)
Run Code Online (Sandbox Code Playgroud)

另外,我创建了一个新的.NET Core 2.0控制台应用程序(这次仅针对.NET Core 2.0),但同样ConfigurationManager在命名空间下似乎没有System.Configuration.

我很困惑,因为它可以在.NET Standard 2.0下使用,所以我希望它可以在.NET Core 2.0中使用,因为.NET Core 2.0符合.NET Standard 2.0.

我错过了什么?

c# app-config .net-core .net-standard

104
推荐指数
4
解决办法
6万
查看次数

如何在MSBuild还原目标中包含预发行包

此问题特定于MSBuild 15.1+(Visual Studio 2017)PackageReference,这Nuget是完全集成在中的新方法MSBuild

在我的持续集成脚本中,我得到了类似的东西:

MSBuild.exe /t:Restore MySolution.sln /p:RestoreConfigFile=NuGet.config
Run Code Online (Sandbox Code Playgroud)

其中一个csproj文件包含:

<PackageReference Include="MyPackageA">
    <Version>1.2.*</Version>
</PackageReference>
Run Code Online (Sandbox Code Playgroud)

MyPackageA 是一个内部软件包,我希望nuget将其引用为最新可用版本,包括预发行版本。

让我们举两个例子:

例子1

可用的软件包有:

  • MyPackageA版本1.2.7-dev1
  • MyPackageA版本1.2.7-dev2
  • MyPackageA版本1.2.7-dev3
  • MyPackageA版本1.2.8

我希望nuget解决依赖关系并选择MyPackageA版本1.2.8。

范例#2

可用的软件包有:

  • MyPackageA版本1.2.7-dev1
  • MyPackageA版本1.2.7-dev2
  • MyPackageA版本1.2.7-dev3
  • MyPackageA版本1.2.8
  • MyPackageA版本1.2.9-dev1
  • MyPackageA版本1.2.9-dev2

我希望nuget解决依赖关系并选择MyPackageA版本1.2.9-dev2。

但是,在两个示例中,它只能解析为1.2.8版(稳定版本)。

有没有办法告诉MSBuildNuget包含预发行软件包?

msbuild nuget nuget-package-restore visual-studio-2017

3
推荐指数
1
解决办法
1580
查看次数