微软安装程序项目的错误

4
在我的WPF .NET Core应用程序中,我添加了一个安装程序项目。生成并安装后,当我尝试运行应用程序时,遇到了以下错误:
“microsoft.data.sqlclient在此平台上不受支持。”
我发现如果将来自不同构建目录的文件Project.runtimeconfig.dev.json和Project.deps.json放入已安装的文件夹中,应用程序就可以重新正常工作。
有人能解释一下为什么会出现这种情况吗?我原以为安装程序项目只是将整个输出包装得好看些,但是有多个在正常构建中发现的文件未被包含在安装程序中。
附加信息:
- 应用程序使用.NET Core 3.1 - Entity Framework Core 3.1.3(这是Microsoft.data.sqlclient依赖项的来源)
解决方案由4个项目组成:
- Project - Project.Core(.netstandard 2.0) - DbProject - InstallerProject
安装程序生成的部分输出:
3>Build succeeded.
3>    0 Warning(s)
3>    0 Error(s)
3>
3>Time Elapsed 00:00:04.42
------ Starting pre-build validation for project 'SetupProject' ------ 
------ Starting pre-build validation for project 'SetupProject' ------ 
------ Starting pre-build validation for project 'SetupProject' ------ 
------ Starting pre-build validation for project 'SetupProject' ------ 
------ Pre-build validation for project 'SetupProject' completed ------
------ Pre-build validation for project 'SetupProject' completed ------
------ Pre-build validation for project 'SetupProject' completed ------
------ Pre-build validation for project 'SetupProject' completed ------
4>------ Rebuild All started: Project: SetupProject, Configuration: Debug ------
4>------ Rebuild All started: Project: SetupProject, Configuration: Debug ------
4>------ Rebuild All started: Project: SetupProject, Configuration: Debug ------
Building file 'D:\User_files\Projekty\C#\Archivator_desktop_WPF_WTS\SetupProject\Debug\SetupProject.msi'...
Building file 'D:\User_files\Projekty\C#\Archivator_desktop_WPF_WTS\SetupProject\Debug\SetupProject.msi'...
Building file 'D:\User_files\Projekty\C#\Archivator_desktop_WPF_WTS\SetupProject\Debug\SetupProject.msi'...
Building file 'D:\User_files\Projekty\C#\Archivator_desktop_WPF_WTS\SetupProject\Debug\SetupProject.msi'...
WARNING: File 'sni.dll' of project output 'Publish Items from Archivator_desktop_WPF_WTS (Debug x64)' targeting 'Unknown' is not compatible with the project's target platform 'x64'
WARNING: File 'sni.dll' of project output 'Publish Items from Archivator_desktop_WPF_WTS (Debug x64)' targeting 'Unknown' is not compatible with the project's target platform 'x64'
WARNING: File 'sni.dll' of project output 'Publish Items from Archivator_desktop_WPF_WTS (Debug x64)' targeting 'Unknown' is not compatible with the project's target platform 'x64'
WARNING: File 'sni.dll' of project output 'Publish Items from Archivator_desktop_WPF_WTS (Debug x64)' targeting 'Unknown' is not compatible with the project's target platform 'x64'
Packaging file 'appsettings.json'...
Packaging file 'appsettings.json'...
Packaging file 'appsettings.json'...
Packaging file 'appsettings.json'...
Packaging file 'Microsoft.EntityFrameworkCore.Proxies.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.Proxies.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.Proxies.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.Proxies.dll'...
Packaging file 'Microsoft.Bcl.HashCode.dll'...
Packaging file 'Microsoft.Bcl.HashCode.dll'...
Packaging file 'Microsoft.Bcl.HashCode.dll'...
Packaging file 'Microsoft.Bcl.HashCode.dll'...
Packaging file 'sni.dll'...
Packaging file 'sni.dll'...
Packaging file 'sni.dll'...
Packaging file 'sni.dll'...
Packaging file 'MahApps.Metro.dll'...
Packaging file 'MahApps.Metro.dll'...
Packaging file 'MahApps.Metro.dll'...
Packaging file 'MahApps.Metro.dll'...
Packaging file 'Archivator_desktop_WPF_WTS.Core.dll'...
Packaging file 'Archivator_desktop_WPF_WTS.Core.dll'...
Packaging file 'Archivator_desktop_WPF_WTS.Core.dll'...
Packaging file 'Archivator_desktop_WPF_WTS.Core.dll'...
Packaging file 'Microsoft.Extensions.Hosting.dll'...
Packaging file 'Microsoft.Extensions.Hosting.dll'...
Packaging file 'Microsoft.Extensions.Hosting.dll'...
Packaging file 'Microsoft.Extensions.Hosting.dll'...
Packaging file 'Microsoft.Extensions.Primitives.dll'...
Packaging file 'Microsoft.Extensions.Primitives.dll'...
Packaging file 'Microsoft.Extensions.Primitives.dll'...
Packaging file 'Microsoft.Extensions.Primitives.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.Relational.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.Relational.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.Relational.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.Relational.dll'...
Packaging file 'Microsoft.Extensions.FileSystemGlobbing.dll'...
Packaging file 'Microsoft.Extensions.FileSystemGlobbing.dll'...
Packaging file 'Microsoft.Extensions.FileSystemGlobbing.dll'...
Packaging file 'Microsoft.Extensions.FileSystemGlobbing.dll'...
Packaging file 'Microsoft.Extensions.DependencyInjection.dll'...
Packaging file 'Microsoft.Extensions.DependencyInjection.dll'...
Packaging file 'Microsoft.Extensions.DependencyInjection.dll'...
Packaging file 'Microsoft.Extensions.DependencyInjection.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Abstractions.dll'...
Packaging file 'Microsoft.Identity.Client.dll'...
Packaging file 'Microsoft.Identity.Client.dll'...
Packaging file 'Microsoft.Identity.Client.dll'...
Packaging file 'Microsoft.Identity.Client.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.SqlServer.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.SqlServer.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.SqlServer.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.SqlServer.dll'...
Packaging file 'Microsoft.Extensions.Logging.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Logging.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Logging.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Logging.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.DependencyInjection.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.DependencyInjection.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.DependencyInjection.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.DependencyInjection.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Configuration.UserSecrets.dll'...
Packaging file 'Microsoft.Extensions.Configuration.UserSecrets.dll'...
Packaging file 'Microsoft.Extensions.Configuration.UserSecrets.dll'...
Packaging file 'Microsoft.Extensions.Configuration.UserSecrets.dll'...
Packaging file 'Microsoft.Extensions.Logging.Console.dll'...
Packaging file 'Microsoft.Extensions.Logging.Console.dll'...
Packaging file 'Microsoft.Extensions.Logging.Console.dll'...
Packaging file 'Microsoft.Extensions.Logging.Console.dll'...
Packaging file 'ControlzEx.dll'...
Packaging file 'ControlzEx.dll'...
Packaging file 'ControlzEx.dll'...
Packaging file 'ControlzEx.dll'...
Packaging file 'Microsoft.Extensions.Hosting.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Hosting.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Hosting.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Hosting.Abstractions.dll'...
Packaging file 'Castle.Core.dll'...
Packaging file 'Castle.Core.dll'...
Packaging file 'Castle.Core.dll'...
Packaging file 'Castle.Core.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'Archivator_desktop_WPF_WTS.runtimeconfig.json'...
Packaging file 'Archivator_desktop_WPF_WTS.runtimeconfig.json'...
Packaging file 'Archivator_desktop_WPF_WTS.runtimeconfig.json'...
Packaging file 'Archivator_desktop_WPF_WTS.runtimeconfig.json'...
Packaging file 'sni.dll'...
Packaging file 'sni.dll'...
Packaging file 'sni.dll'...
Packaging file 'sni.dll'...
Packaging file 'Microsoft.Extensions.Caching.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Caching.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Caching.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Caching.Abstractions.dll'...
Packaging file 'Archivator_desktop_WPF_WTS.exe'...
Packaging file 'Archivator_desktop_WPF_WTS.exe'...
Packaging file 'Archivator_desktop_WPF_WTS.exe'...
Packaging file 'Archivator_desktop_WPF_WTS.exe'...
Packaging file 'Newtonsoft.Json.dll'...
Packaging file 'Newtonsoft.Json.dll'...
Packaging file 'Newtonsoft.Json.dll'...
Packaging file 'Newtonsoft.Json.dll'...
Packaging file 'Microsoft.Extensions.Logging.dll'...
Packaging file 'Microsoft.Extensions.Logging.dll'...
Packaging file 'Microsoft.Extensions.Logging.dll'...
Packaging file 'Microsoft.Extensions.Logging.dll'...
Packaging file 'Microsoft.Extensions.Logging.Debug.dll'...
Packaging file 'Microsoft.Extensions.Logging.Debug.dll'...
Packaging file 'Microsoft.Extensions.Logging.Debug.dll'...
Packaging file 'Microsoft.Extensions.Logging.Debug.dll'...
Packaging file 'Microsoft.Extensions.Caching.Memory.dll'...
Packaging file 'Microsoft.Extensions.Caching.Memory.dll'...
Packaging file 'Microsoft.Extensions.Caching.Memory.dll'...
Packaging file 'Microsoft.Extensions.Caching.Memory.dll'...
Packaging file 'Microsoft.Extensions.Options.ConfigurationExtensions.dll'...
Packaging file 'Microsoft.Extensions.Options.ConfigurationExtensions.dll'...
Packaging file 'Microsoft.Extensions.Options.ConfigurationExtensions.dll'...
Packaging file 'Microsoft.Extensions.Options.ConfigurationExtensions.dll'...
Packaging file 'Microsoft.Extensions.FileProviders.Physical.dll'...
Packaging file 'Microsoft.Extensions.FileProviders.Physical.dll'...
Packaging file 'Microsoft.Extensions.FileProviders.Physical.dll'...
Packaging file 'Microsoft.Extensions.FileProviders.Physical.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.Abstractions.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.Abstractions.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.Abstractions.dll'...
Packaging file 'Microsoft.EntityFrameworkCore.Abstractions.dll'...
Packaging file 'Archivator_desktop_WPF_WTS.dll'...
Packaging file 'Archivator_desktop_WPF_WTS.dll'...
Packaging file 'Archivator_desktop_WPF_WTS.dll'...
Packaging file 'Archivator_desktop_WPF_WTS.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'System.Runtime.Caching.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Binder.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Binder.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Binder.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Binder.dll'...
Packaging file 'Microsoft.Extensions.Logging.EventSource.dll'...
Packaging file 'Microsoft.Extensions.Logging.EventSource.dll'...
Packaging file 'Microsoft.Extensions.Logging.EventSource.dll'...
Packaging file 'Microsoft.Extensions.Logging.EventSource.dll'...
Packaging file 'Microsoft.Extensions.Logging.Configuration.dll'...
Packaging file 'Microsoft.Extensions.Logging.Configuration.dll'...
Packaging file 'Microsoft.Extensions.Logging.Configuration.dll'...
Packaging file 'Microsoft.Extensions.Logging.Configuration.dll'...
Packaging file 'Microsoft.Extensions.Configuration.FileExtensions.dll'...
Packaging file 'Microsoft.Extensions.Configuration.FileExtensions.dll'...
Packaging file 'Microsoft.Extensions.Configuration.FileExtensions.dll'...
Packaging file 'Microsoft.Extensions.Configuration.FileExtensions.dll'...
Packaging file 'sni.dll'...
Packaging file 'sni.dll'...
Packaging file 'sni.dll'...
Packaging file 'sni.dll'...
Packaging file 'Microsoft.Extensions.Configuration.EnvironmentVariables.dll'...
Packaging file 'Microsoft.Extensions.Configuration.EnvironmentVariables.dll'...
Packaging file 'Microsoft.Extensions.Configuration.EnvironmentVariables.dll'...
Packaging file 'Microsoft.Extensions.Configuration.EnvironmentVariables.dll'...
Packaging file 'Microsoft.Extensions.Configuration.CommandLine.dll'...
Packaging file 'Microsoft.Extensions.Configuration.CommandLine.dll'...
Packaging file 'Microsoft.Extensions.Configuration.CommandLine.dll'...
Packaging file 'Microsoft.Extensions.Configuration.CommandLine.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Extensions.FileProviders.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.FileProviders.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.FileProviders.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.FileProviders.Abstractions.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Json.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Json.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Json.dll'...
Packaging file 'Microsoft.Extensions.Configuration.Json.dll'...
Packaging file 'Microsoft.Extensions.Logging.EventLog.dll'...
Packaging file 'Microsoft.Extensions.Logging.EventLog.dll'...
Packaging file 'Microsoft.Extensions.Logging.EventLog.dll'...
Packaging file 'Microsoft.Extensions.Logging.EventLog.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Data.SqlClient.dll'...
Packaging file 'Microsoft.Extensions.Options.dll'...
Packaging file 'Microsoft.Extensions.Options.dll'...
Packaging file 'Microsoft.Extensions.Options.dll'...
Packaging file 'Microsoft.Extensions.Options.dll'...
Packaging file 'Microsoft.Xaml.Behaviors.dll'...
Packaging file 'Microsoft.Xaml.Behaviors.dll'...
Packaging file 'Microsoft.Xaml.Behaviors.dll'...
Packaging file 'Microsoft.Xaml.Behaviors.dll'...
Packaging file 'Microsoft.Bcl.AsyncInterfaces.dll'...
Packaging file 'Microsoft.Bcl.AsyncInterfaces.dll'...
Packaging file 'Microsoft.Bcl.AsyncInterfaces.dll'...
Packaging file 'Microsoft.Bcl.AsyncInterfaces.dll'...
Packaging file 'Archivator_desktop_WPF_WTS.pdb'...
Packaging file 'Archivator_desktop_WPF_WTS.pdb'...
Packaging file 'Archivator_desktop_WPF_WTS.pdb'...
Packaging file 'Archivator_desktop_WPF_WTS.pdb'...
Packaging file 'ArchivatorDb.dll'...
Packaging file 'ArchivatorDb.dll'...
Packaging file 'ArchivatorDb.dll'...
Packaging file 'ArchivatorDb.dll'...
Packaging file 'Microsoft.Extensions.Configuration.dll'...
Packaging file 'Microsoft.Extensions.Configuration.dll'...
Packaging file 'Microsoft.Extensions.Configuration.dll'...
Packaging file 'Microsoft.Extensions.Configuration.dll'...
========== Rebuild All: 4 succeeded, 0 failed, 0 skipped ==========

编辑:我已经了解到Windows安装程序项目调用项目上的“发布”然后打包输出,发布应该解决依赖项并将它们包含在内,而构建只是引用在Nuget中下载的包,这就是为什么包括这些额外文件可以解决问题,但只能在我的个人电脑上 - 它们引用了缺少的包。我还发现Visual Studio的“发布到文件”功能没有这个问题,但我无法直接在安装程序中使用它的输出。

https://dev59.com/pl4d5IYBdhLWcg3wAOVw#53304641

你好!你找到答案了吗? - NKAT
@НиколайКаретников 是的,我试过了,但我不确定怎么做。我试了很多次来解决这个问题,虽然我知道问题出在哪里,但我不知道究竟是什么解决了它。 - Luk164
1个回答

1
我认为这是一个错误。通过比较我的项目和你的项目,我认为共享的 .net Standard 库和/或 PackageReferences 可能是问题的根源。
通过比较你会发现几个 dll 的文件大小不同,这可能是由于位数或框架与核心/标准之间的差异导致发布过程错误地解释了它们。
要解决这个问题,我也包括了“本地复制项”,这样就可以解决问题了。

enter image description here

我认为这会先生成已发布的输出,然后用原始生成的输出覆盖它。
我曾试着只使用本地复制的项目,但我需要主要输出以便在自定义操作中找到安装程序类及其事件。
额外信息 查看依赖项,很明显它失败的原因...
我的 .net 标准库使用 nuget 包中适当的 dll。使用该库的服务项目 (.net framework) 却引入了该相同 dll 的 .net Framework 版本。

.net Framework dll reference

在一定程度上,这是一个已知的问题,而使用 .net core 3,有一个新的发布选项:publish items

new publish reference

在我的情况下,这对我没有太大的好处,因为我的目标项目是一个.NET Framework服务。从这里值得一提的唯一事情是,这可能足以让我在服务中创建一个新的.NET Core后台工作者,并使用Wix进行安装。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接