2016-02-29 130 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.

相關問題