문제

모든 빌드 서버에 느린 치타를 설치하고 싶지 않습니다.

우리는 Config Transformations에 대해 느린 치타를 사용하고 있으며 완벽하게 작동합니다.그것은 여러 app.config 파일을 생성하고 원하는대로 변경 사항을 변경합니다.

우리는 여러 서버를 설치했습니다.모든 객체 리포지토리가 있으며, 명령 줄에서 코드를 당겨 패키지를 빌드합니다.이러한 코드에는 해당 구성 파일이 있습니다.그러나 여전히 명령 줄에서 응용 프로그램을 컴파일 할 때, Cheetah가 느린 상태가 설치되어 있지 않으면 패키지가 변환으로 생성되지 않습니다.그렇지 않으면 잘 작동합니다.

새 서버와 새 사용자를 설정할 때 우리는 결코 알 수 없으므로, 그 중 하나 모두에 느린 치타를 설치할 수 없습니다

어플리케이션에서 느린 cheetah DLL을 사용하고 변환 방법을 수동으로 호출하는 것이 가능합니다.

감사합니다

도움이 되었습니까?

다른 팁

SLOWCHEETAH의 대안으로서 프로젝트 파일을 수동으로 편집 하여이 기능을 처리 할 수 있습니다.설정하는 것은 조금 더 번거롭지 만 여분의 DLL이 필요하지 않다는 것을 의미합니다.

텍스트 편집기에서 프로젝트 파일을 엽니 다.닫는 태그 바로 앞에 프로젝트 파일의 맨 아래에 다음을 포함하십시오.

<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="AfterCompile" Condition="exists('app.$(Configuration).config')">
    <!-- Generate transformed app config in the intermediate directory -->
    <TransformXml Source="app.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="app.$(Configuration).config" />
    <!-- Force build process to use the transformed configuration file from now on. -->
    <ItemGroup>
        <AppConfigWithTargetPath Remove="app.config" />
        <AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
            <TargetPath>$(TargetFileName).config</TargetPath>
        </AppConfigWithTargetPath>
    </ItemGroup>
</Target>
.

그런 다음 프로젝트 파일에서 라인을 찾아 다음과 같이 바꿉니다.

<ItemGroup>
    <Content Include="App.config" />
    <Content Include="App.Debug.config">
        <DependentUpon>App.config</DependentUpon>
    </Content>
    <Content Include="App.Release.config">
        <DependentUpon>App.config</DependentUpon>
    </Content>
</ItemGroup>
.

추가 한 각 구성에 대해 추가 콘텐츠를 추가해야합니다. 불행히도이 메서드를 사용하여 "변환 추가"컨텍스트 메뉴를 확보하지 못합니다.

그 후에 프로젝트 디렉토리에있는 파일을 만드는 것이 좋습니다.그것은 slowcheetah만큼 매끄러운 것이 아니지만 코드를 휴대용으로 유지합니다.

최신 버전의 Slowcheetah (2.5.14)는 "NuGet 에서 사용할 수 있습니다.NuGet을 통해 추가 할 때 로컬 솔루션 디렉토리 (예 : 모든 nuget 패키지)의 packages 폴더에 저장되어 있으므로 현재 상자에서 빌드 서버에서 작동해야합니다.

솔루션을 구축하는 서버에 설치되는 것을 피하기 위해 다음과 같은 응용 프로그램에서 SLOWCHEETAH를 포함합니다.

  1. 내 솔루션 루트에서는 (다른 것들 중에서) Slowcheetah를 포함하는 폴더 도구가 있습니다.
    1. myProject / Tools / slowcheetah / slowcheetah.tasks.dll
    2. MyProject / Tools / Slowcheetah / slowcheetah.transforms.targets
    3. (웹 -) 응용 프로그램 프로젝트의 .csproj-file에 있습니다.
      
        <PropertyGroup>
                <SlowCheetahTargets Condition=" '$(SlowCheetahTargets)'=='' ">$(MSBuildProjectDirectory)\..\Tools\SlowCheetah\SlowCheetah.Transforms.targets  </SlowCheetahTargets>
         </PropertyGroup>
      
      .

      및이 :

      <Import Project="$(SlowCheetahTargets)" Condition="Exists('$(SlowCheetahTargets)')" />
      
      .

      .. 팀 시티에서 빌딩 / 출판 할 때도 일을 잘 처리하는 것 같습니다.

      편집 :

      Visual Studio에 Slowcheetah를 설치하면 %localappdata%\Microsoft\MSBuild\SlowCheetah\v1 (drive:\Users\yourusername\AppData\Local\Microsoft\MSBuild\SlowCheetah\v1)에 언급 된 두 파일이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top