【问题标题】:Have visual studio copy x64 DLL or x86 DLL when building a C# project在构建 C# 项目时让 Visual Studio 复制 x64 DLL 或 x86 DLL
【发布时间】:2024-12-15 11:05:01
【问题描述】:

我们正在构建一个使用 Sqlite.NET 的外部 DLL 的 C# 应用程序。这是一个 .NET dll,但它在其中嵌入了一个 C dll,因此它具有 x86 和 x64 风格。

我们在项目中添加了对 x86 版本的引用,因此当我们在 x86 上构建和运行时就可以了。 Visual Studio 将 dll 复制到 bin 文件夹并运行。

在 x64 上,它当然仍然复制 x86 版本,然后在运行时无法加载它。我们通过暂时将我们的项目设置为仅 x86 来解决这个问题,但理想情况下,我们希望告诉 Visual Studio 复制正确的版本,具体取决于它是哪种机器。

有什么想法吗?

【问题讨论】:

标签: .net visual-studio 64-bit


【解决方案1】:

这可以在 MSBuild 中完成(即您需要卸载项目并编辑 .csproj 文件)。

本质上是在属性组中添加一个属性,该属性以平台为条件来标识相应程序集的路径,然后在引用项组中使用该属性。

答案在这里:Conditional references in .NET project, possible to get rid of warning?

【讨论】: