0

我有一个视觉工作室设置项目,我在我的一个项目中使用它。我向我展示了很多我不想包含在我的 MSI 中的依赖项,所以我排除了它们(从 VS UI 中)。但是由于某种原因,当我使用命令行 msbuild 时,VS2010 仍然会查找排除的依赖项。然后我决定在文本编辑器中打开 vdproj 文件,然后手动删除所有依赖项。所以现在我的本地 msbuild 问题已经解决了,但是当我使用 TFS 构建时,它会将所有依赖项重新注入到 MSI 中。

前任:

"{9F6F8455-1EF1-4B85-886A-4223BCC8E7F7}:_EE52F4998F1347C63BF8AE8E07278827"
        {
        "AssemblyRegister" = "3:1"
        "AssemblyIsInGAC" = "11:FALSE"
        "AssemblyAsmDisplayName" = "8:myproject.Test, Version=3.3.0.0, Culture=neutral, processorArchitecture=MSIL"
            "ScatterAssemblies"
            {
                "_EE52F4998F1347C63BF8AE8E07278827"
                {
                "Name" = "8:Test.testmsi.DLL"
                "Attributes" = "3:512"
                }
            }
        "SourcePath" = "8:test.testmsi.SR.DLL"
        "TargetName" = "8:"
        "Tag" = "8:"
        "Folder" = "8:_289AAB175D4E4DA9B94AC6756E51F3F9"
        "Condition" = "8:"
        "Transitive" = "11:FALSE"
        "Vital" = "11:TRUE"
        "ReadOnly" = "11:FALSE"
        "Hidden" = "11:FALSE"
        "System" = "11:FALSE"
        "Permanent" = "11:FALSE"
        "SharedLegacy" = "11:FALSE"
        "PackageAs" = "3:1"
        "Register" = "3:1"
        "Exclude" = "11:TRUE"
        "IsDependency" = "11:TRUE"
        "IsolateTo" = "8:"
        }

所以基本上我所做的就是删除文件的所有这些部分

 "Exclude" = "11:TRUE"
 "IsDependency" = "11:TRUE"

我还需要从文件中删除任何其他内容,以便 TFS 不会在 MSI 中注入其他内容吗?

谢谢

4

2 回答 2

2

自动依赖检测是你的敌人。

您可以通过仅在构建机器上处理安装程序项目、通过构建机器签入并且仅在最终发布配置中最小化影响。然后排除“持有”。至少他们为我做了。

在这里查看我对这个组件的抱怨。

于 2016-11-29T18:17:50.593 回答
0

这帮助我解决了我的问题:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/cccfa305-e8c2-4cd2-8503-78e9fc2028cb/setup-build-fails-unable-to-update-the-dependencies-of-the-项目?论坛=netfxbcl

拆除安装项目(删除所有程序集),然后保存安装项目,然后编辑安装项目文件并删除剩余的程序集。然后从 Visual Studio 中重新添加所有内容。然后,排除检测到的依赖项。必须手动更新 ID 以获取指向可执行文件的快捷方式。可以再次构建设置工具包。

于 2021-06-18T12:45:39.097 回答