【问题标题】:Visual Studio 2022 package target doesn't include bin\x64 folder but VS2019 didVisual Studio 2022 包目标不包含 bin\x64 文件夹,但 VS2019 包含
【发布时间】:2022-07-06 12:54:00
【问题描述】:

我想我有很多关于为什么会发生这种情况的信息,但我无法将所有线索放在一起。

我们在 VS 2019 中构建了一个带有 nuget 依赖项的 ASP.NET 应用程序(Microsoft.Data.SqlClient.SNI.1.0.19235.1,如果重要的话)。我已经使用了 msbuild -t:package 并且在 VS 2019 中,它会使用该 nuget 包中的 DLL 吐出 bin\x86 和 bin\x64 文件夹。打包步骤会输出一个 zip 文件,打开它可以看到其中的 x86/x64 文件夹。

我们升级到 VS 2022 并且 CPU 拱形文件夹不再存在。我可以看到它们是在工作目录中创建的,但不是在包输出中。

项目中没有任何变化。它设置为针对“AnyCPU”和 Framework 4.6.2。我们用来构建的命令也没有改变。据我所知,这只是对 VS 2022 的升级。

我知道 VS 2022 现在是 64 位原生的,所以我怀疑这在起作用。关于为什么这些 CPU 架构文件夹不再包含在 zip 包中的任何想法?以及如何让他们回到那里?

谢谢!

【问题讨论】:

标签: msbuild visual-studio-2019 visual-studio-2022


【解决方案1】:

根据你的描述我做了一些测试,希望对你有帮助:

  1. 在菜单中的 Build 下检查您的 Configuration Manager 并添加您需要的新平台。
  2. 在菜单中 Build 下的 Batch Build 中构建项目。
  3. 我们可以看到 .dll 文件是在同一路径中创建的,因此将被覆盖。
  4. 打开项目文件。(右键单击项目并卸载项目,然后再次右键单击并选择编辑项目文件)
  5. 你可以看到这样的代码:
  6. 将 OutputPath 更改为“bin\x64\Debug\”、“bin\x64\Release\”等。
  7. 重新加载项目并在 Batch Build 中重建项目。
  8. 关于如何将多个平台打包成一个包你可以看到这个(Pack multiple platforms into one package, using dotnet pack)。

【讨论】:

    猜你喜欢
    • 2022-07-02
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 2020-09-22
    相关资源
    最近更新 更多