我有一个可视工作室设置项目,我正在我的一个项目中使用它。我向我展示了许多我不希望包含在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中注入其他内容吗?
谢谢
答案 0 :(得分:0)
自动依赖检测是你的敌人。
您可以通过仅处理构建计算机上的安装程序项目,通过构建计算机进行检入以及仅在最终发布配置中来最小化影响。然后排除'持有'。至少他们为我做了。
答案 1 :(得分:0)
这帮助我解决了我的问题:
<块引用>拆除安装项目(删除所有程序集),然后保存安装项目,然后编辑安装项目文件并删除剩余的程序集。然后从 Visual Studio 中重新添加所有内容。然后,排除检测到的依赖项。必须手动更新指向可执行文件的快捷方式的 ID。安装套件可以再次构建。