安装程序项目有不同的框架版本用于调试和发布吗



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

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

输出窗口显示线路-

正在生成文件"D:\Local Git\XXXX\XX\XXXX_Git_RERepository\XXXXX\Setup\Setup1\Release \Setup1.msi"…两次,并且似乎所有引用都被复制了两次。

的解决方案配置

调试(任何CPU(vb app-x86,c#app任何CPU,Setup1不包括

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

在Setup1.vdproj中,我看到Debug被设置为.NETFramework,Version=v4.0,而在Release模式中,它是.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"
}

非常感谢您的阅读。

Mike

您确定加倍的大小不是因为.msi中同时包含x86和x64代码,因为在生成配置中指定了任何CPU吗?

要测试这一点,请转到Project Properties->Compile,然后查看";目标CPU";。选择x86 only,然后重建解决方案和安装程序包,安装MSI,并查看.exe在C:Program Files(x86)中已安装程序文件夹中的大小,或者只查看objReleasebinRelease文件夹中.exe的文件大小,具体取决于您选择的目标。

最新更新