小编gal*_*tor的帖子

.NET Core 发布的应用程序因 FileNotFoundException 而失败

我有一个目标为 netcoreapp2.1 的 .NET Core 控制台应用程序。它使用 Windows 兼容包调用现有的 WCF 服务。

当我通过 Visual Studio 运行它时,或者如果我习惯dotnet run从命令行运行它,它工作正常。

但是,我想将它发布到一个 .exe 文件,以便我可以通过双击它来运行它。

因此,我运行了似乎成功的 Publish,但是当我尝试运行已发布的 .exe 文件时,它失败并出现以下异常:

System.IO.FileNotFoundException: Could not load file or assembly 
'System.Private.ServiceModel, Version=4.1.2.1, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)

这个错误发生在我运行发布的机器上,如果我尝试将发布的文件夹复制到另一台机器上。我相信这System.Private.ServiceModelMicrosoft.Windows.Compatibility包的某种深度依赖,但为什么这不起作用?它肯定应该自动复制到输出文件夹吗?

是否需要额外的配置或设置来让发布自动引入依赖项?

如果重要,csproj 文件中的引用如下所示:

  <ItemGroup>
    <PackageReference Include="Microsoft.Windows.Compatibility" Version="2.0.1" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

c# publish .net-core

7
推荐指数
1
解决办法
2636
查看次数

IE11上的XSLT处理?

IE11中的XSLT处理发生了什么变化?

在IE8/9/10上,您可以使用:

if (window.ActiveXObject) {
    var xslt = new ActiveXObject("Msxml2.XSLTemplate");
    ....
}
Run Code Online (Sandbox Code Playgroud)

在Chrome/Firefox/Safari上,您可以使用:

else { 
    var xsltProcessor = new XSLTProcessor();
}
Run Code Online (Sandbox Code Playgroud)

但是在IE11上,这些都不受支持.有谁知道如何实现这一目标?

xslt internet-explorer-11

6
推荐指数
1
解决办法
2万
查看次数

EF Core:使用 AD 身份验证连接到 Azure SQL 的最佳实践方法

使用 EF Core 和 Azure AD 集成身份验证连接到数据库的主要方式似乎有三种。

方法一:经典方法

在 DbContext 中,输入:

 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
 {
     var conn = new SqlConnection(ConnString);
     conn.AccessToken = new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/").Result;
     optionsBuilder.UseSqlServer(conn);
 }
Run Code Online (Sandbox Code Playgroud)

.Result这既可以在开发人员的计算机上本地运行,也可以在 Azure 中运行,但由于没有异步版本的 OnConfiguring,因此存在这种狡猾的异步同步使用。.Result不建议使用 async-over-sync 调用。

方法2:使用连接拦截器

public class AadAuthenticationDbConnectionInterceptor : DbConnectionInterceptor
{
    public override async Task<InterceptionResult> ConnectionOpeningAsync(DbConnection connection, ConnectionEventData eventData, InterceptionResult result, CancellationToken cancellationToken)
    {
        var sqlConnection = (SqlConnection)connection;
        sqlConnection.AccessToken = await new AzureServiceTokenProvider().GetAccessTokenAsync("https://database.windows.net/");

        return await base.ConnectionOpeningAsync(connection, eventData, result, cancellationToken);
    }

    public override InterceptionResult ConnectionOpening(DbConnection connection, ConnectionEventData eventData, …
Run Code Online (Sandbox Code Playgroud)

azure-active-directory entity-framework-core azure-sql-database

6
推荐指数
1
解决办法
2837
查看次数

.NET标准DLL二进制文件是否与.NET Framework兼容?

我目前有一个构建为.NET Framework 4.6.1的实用程序库,并由各种.NET Framework应用程序引用.

我现在想要创建一个新的.NET Core应用程序,因此我想将实用程序库转换为.NET Standard 2.0,以便它可以被两种类型的应用程序使用.

如果我只是打开库的源代码,将目标更改为.NET Standard 2.0并重建它(假设它只使用.NET Standard中提供的API),我可以删除新的程序集以替换现有的程序集现有的应用程序是否仍然有效?或者是否需要针对新版本重建应用程序?

更常见的相关问题是,与.NET Framework相比,.NET标准DLL生成的元数据有何不同,以及它们如何/如果影响装配解析器?

(为了抢先评论"为什么不试试看看",我想知道这是否是一个支持的场景,而不仅仅是技术上是否适用于我)

.net c# .net-standard

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

通过事件网格的 Application Insights 关联

我有一个由两个 ASP.NET Core 应用程序(应用程序 A 和应用程序 B)组成的应用程序。应用程序 A 对应用程序 B 进行 HTTP 调用,Application Insights 会自动关联它并将它们显示为单个请求。伟大的!

但是,我现在转向更基于事件的系统设计,其中应用程序 A 将事件发布到 Azure 事件网格,应用程序 B 设置了一个 webhook 来侦听该事件。

进行了更改后,遥测相关性被破坏,不再显示为单个操作。

我已阅读此文档:https : //docs.microsoft.com/en-us/azure/azure-monitor/app/correlation 解释了相关标题的理论 - 但我如何将其应用于事件网格并获取它将相关标头转发到订阅端点?

azure azure-application-insights azure-eventgrid

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

将.NET Core应用程序升级到1.1的错误

所以,我有一个快乐的ASP.NET Core 1.0应用程序,目标是net461框架.

今天我尝试将其升级到新的ASP.NET Core 1.1(根据此页面上的说明,您需要做的就是Nuget包升级)

这导致了以下一系列错误:

error: Unable to resolve 'Microsoft.AspNetCore.Diagnostics.Abstractions (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'.
error: Unable to resolve 'Microsoft.AspNetCore.Hosting.Abstractions (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'.
error: Unable to resolve 'Microsoft.AspNetCore.Http.Extensions (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'.
error: Unable to resolve 'Microsoft.AspNetCore.WebUtilities (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'.
error: Unable to resolve 'Microsoft.Extensions.FileProviders.Physical (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'.
error: Unable to resolve 'Microsoft.Extensions.Logging.Abstractions (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'.
error: Unable to resolve 'Microsoft.Extensions.Options (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'.
error: Unable to resolve 'System.Diagnostics.DiagnosticSource (>= …
Run Code Online (Sandbox Code Playgroud)

.net-core asp.net-core

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