【问题标题】:Setup project has different framework versions for debug and release?安装项目有不同的框架版本用于调试和发布?
【发布时间】:2021-11-16 14:37:37
【问题描述】:

将 VS2015 解决方案升级到 VS2019,其中包含 3 个项目:一个大型 vb.net 项目、一个非常小的 CSharp 项目和一个使用 Microsoft Visual Studio 安装程序项目扩展从早期 VS2015 项目移植过来的安装项目。

解决方案编译和构建成功,但似乎项目正在构建两次,生成的 setup1.msi 大约是迁移到 VS2019 之前构建的大小的两倍。

输出窗口显示行-

构建文件 'D:\Local Git\XXXX\XX\XXXX_GIT_Repository\XXXXX\Setup\Setup1\Release\Setup1.msi'... 两次 似乎所有的引用都被复制了两次。

解决方案配置

Debug (Any CPU) vb app-x86, c# app-Any cpu, Setup1 not included

发布(任何 CPU)vb app-x86,c# app-Any cpu,包括 Setup1

在 Setup1.vdproj 中,我看到 Debug 设置为 .NETFramework,Version=v4.0,而在发布模式下为 .NETFramework,Version=v4.6.1

有人知道为什么调试框架不同,以及如何使用 VS2019 IDE 将其设置为发布框架?

我怀疑这可能是重复消息和增加 msi 大小的原因。

"Debug"
    {
    "DisplayName" = "8:Debug"
    "IsDebugOnly" = "11:TRUE"
    "IsReleaseOnly" = "11:FALSE"
    "OutputFilename" = "8:Debug\\Setup1.msi"
    "PackageFilesAs" = "3:2"
    "PackageFileSize" = "3:-2147483648"
    "CabType" = "3:1"
    "Compression" = "3:2"
    "SignOutput" = "11:FALSE"
    "CertificateFile" = "8:"
    "PrivateKeyFile" = "8:"
    "TimeStampServer" = "8:"
    "InstallerBootstrapper" = "3:2"
        "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
        {
        "Enabled" = "11:TRUE"
        "PromptEnabled" = "11:TRUE"
        "PrerequisitesLocation" = "2:1"
        "Url" = "8:"
        "ComponentsUrl" = "8:"
            "Items"
            {
                "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.0"
                {
                "Name" = "8:Microsoft .NET Framework 4 (x86 and x64)"
                "ProductCode" = "8:.NETFramework,Version=v4.0"
                }
            }
        }
    }
    "Release"
    {
    "DisplayName" = "8:Release"
    "IsDebugOnly" = "11:FALSE"
    "IsReleaseOnly" = "11:TRUE"
    "OutputFilename" = "8:Release\\Setup1.msi"
    "PackageFilesAs" = "3:2"
    "PackageFileSize" = "3:-2147483648"
    "CabType" = "3:1"
    "Compression" = "3:2"
    "SignOutput" = "11:FALSE"
    "CertificateFile" = "8:"
    "PrivateKeyFile" = "8:"
    "TimeStampServer" = "8:"
    "InstallerBootstrapper" = "3:2"
        "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
        {
        "Enabled" = "11:TRUE"
        "PromptEnabled" = "11:TRUE"
        "PrerequisitesLocation" = "2:1"
        "Url" = "8:"
        "ComponentsUrl" = "8:"
            "Items"
            {
                "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:.NETFramework,Version=v4.6.1"
                {
                "Name" = "8:Microsoft .NET Framework 4.6.1 (x86 and x64)"
                "ProductCode" = "8:.NETFramework,Version=v4.6.1"
                }

非常感谢您的阅读。

迈克

【问题讨论】:

标签: vb.net installation visual-studio-2019


【解决方案1】:

您确定翻倍的大小不是由于 .msi 中同时包含 x86 和 x64 代码,因为在构建配置中指定了任何 CPU?

要对此进行测试,请转至Project Properties->Compile,然后查看“目标 CPU”下列出的内容。选择x86 only,然后重建解决方案和安装包,安装MSI,然后查看C:\Program Files(x86) 中已安装程序文件夹中的.exe 文件大小,或者只查看@987654324 中的.exe 文件大小@ 或 \bin\Release 文件夹,具体取决于您选择的目标。

【讨论】:

  • 谢谢。 VB.Net 项目目标 CPU 是 x86,但 C# 项目设置为 Any CPU,所以您可能是对的。我将尝试将 C# 目标更改为 x86。再次感谢。
  • 好的 - 如果它有效,请务必接受此作为答案,因为版主不喜欢 cmets 声明有效且未点击回答的问题。
猜你喜欢
  • 1970-01-01
  • 2017-01-03
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 2017-12-02
  • 2018-09-08
  • 2020-11-13
  • 1970-01-01
相关资源
最近更新 更多