2016-02-29 225 views
0

我有一个visual studio安装项目,我正在使用我的项目之一。我向我展示了很多我不想包含在MSI中的依赖项,所以我排除了它们(来自VS UI)。但由于某些原因,当我使用命令行msbuild时,VS2010仍会查找排除的依赖关系。然后我决定在文本编辑器中打开vdproj文件,然后手动删除所有依赖关系。所以现在我的本地msbuild问题已经解决,但是当我使用TFS构建构建时,它将所有依赖关系重新注入到MSI中。在C#安装项目中删除vdproj文件中检测到的依赖项?

例:

"{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

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

您只能在构建机器上对安装程序项目进行操作,通过构建机器进行校验,并且只能在最终版本配置中进行操作,从而最大限度地降低影响。然后排除“保留”。至少他们为我做。

See my whinge about this component here.

相关问题