Próbujemy wdrożyć usługę sieci Web za pośrednictwem programu MSbuild, a następnie użyć programu MSDeploy do wypchnięcia usługi na serwer IIS. W oparciu o różne środowiska mamy oddzielne pliki konfiguracyjne, do których należy się odwoływać w zależności od tego, gdzie się znajdują, używając . Problem polega na tym, że gdy pakiet jest tworzony, inne pliki web..config nie otrzymują pakietu. Próbowałem używać

<CopyAllFilesToSingleFolderForPackageDependsOn>
 CustomCollectFiles;
 $(CopyAllFilesToSingleFolderForPackageDependsOn);
 </CopyAllFilesToSingleFolderForPackageDependsOn>

W połączeniu z

<Target Name="CustomCollectFiles">
 <ItemGroup>
  <FilesForPackagingFromProject Include="*.config">
     <DestinationRelativePath>%(Filename)%(Extension)</DestinationRelativePath>
   <FilesForPackagingFromProject>
  </ItemGroup>
</Target> 

Ale wydaje się, że nie kopiuje plików. Czy robię coś złego, czy mogę włączyć je do Transform Files?

0
Chris 28 luty 2012, 23:37

2 odpowiedzi

Najlepsza odpowiedź

Głupi mnie, nigdy nie próbowałem zmienić nazwy plików ... tak długo, jak plik konfiguracyjny nie zaczyna się od Web MSBuild kopiuje plik do pakietu i nie zakłada, że ​​jest to plik transformacji

0
Chris 2 marzec 2012, 01:11

Używam narzędzia XmlPreprocess do manipulowania plikami konfiguracyjnymi. Używam jednego pliku mapowania dla wielu środowisk. Możesz edytować plik mapowania w programie Excel. Jest bardzo łatwy w użyciu.

Możesz go wywołać ze skryptu MSBuild za pomocą zadania Exec.

0
Ludwo 29 luty 2012, 09:47