1
내가 -=Dotfuscator Task with Team Build =-에서 가져온 일명 팀 빌드를 빌드 TFS를 통해 dotfuscator 작업을 호출하고 다음과 같은 오류 수신하고

님의오류 (팀 TFS 2008 빌드)

Build FAILED. 


(AfterCompile target) -> 

error MSB4061: The "Dotfuscate" task could not be instantiated from the assembly "C:\Program Files\MSBuild\PreEmptive\Dotfuscator\4.0\PreEmptive.Dotfuscator.Tasks.dll". 

error MSB4061: System.InvalidOperationException: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application. 

error MSB4061: at System.Windows.Forms.Form.ShowDialog(IWin32Window owner) 

error MSB4061: at System.Windows.Forms.Form.ShowDialog() 
error MSB4061: at PreEmptive.Tasks.Dotfuscate.b() 
error MSB4061: at PreEmptive.Tasks.Dotfuscate.a() 
error MSB4061: at PreEmptive.Tasks.Dotfuscate..ctor() 
error MSB4060: The "Dotfuscate" task has been declared or used incorrectly, or failed during construction. Check the spelling of the task name and the assembly name. 

    0 Warning(s) 
    2 Error(s) 

코드 관련을

<!--- 
    All Dotfuscation Stuff here... 
    --> 

    <PropertyGroup> 
    <ConfigPath>$(SolutionRoot)\..\$(BuildDefinitionPath)\BuildType\dotfuscator.xml</ConfigPath> 
    <!--<InputPath>$(OutDir)</InputPath>--> 
    <InputPath>\\Dev-6\TempBuild\Output\</InputPath> 
    </PropertyGroup> 

    <ItemGroup> 
    <InputAssembly Include="$(InputPath)\*.dll;$(InputPath)\*.exe" Exclude="$(InputPath)\*.vshost.exe"/> 
    </ItemGroup> 

    <Target Name="AfterCompile"> 

    <!--Perform obfuscation steps after assemblies are compiled.--> 

    <Dotfuscate InputAssemblies="@(InputAssembly)" Properties="$(DotfuscatorProperties)" ConfigPath="$(ConfigPath)"> 
     <Output TaskParameter="MappingFile" ItemName="DotfuscatorMappingFile"/> 
     <Output TaskParameter="ReportFiles" ItemName="DotfuscatorReportFiles"/> 
     <Output TaskParameter="OutputAssemblies" ItemName="DotfuscatedAssemblies"/> 
     <Output TaskParameter="SatelliteAssemblies" ItemName="DotfuscatedSatelliteAssemblies"/> 
     <Output TaskParameter="DebugSymbols" ItemName="DotfuscatedDebugSymbols"/> 
    </Dotfuscate> 
    </Target> 
    <!-- End of dotfuscation Stuf....--> 

을 나는 다음과 같은 dotfuscator 작업을 사용하고 있습니다 :

<Import Project="$(MSBuildExtensionsPath)\PreEmptive\Dotfuscator\4.0\PreEmptive.Dotfuscator.Targets" /> 
0을 다음과 같이 dotfuscator에 dotfuscator입니다

빌드 머신에는 전문적인 dotfuscator가 설치되어 있습니다. 그것의 모든 기능을 수동으로 사용할 때 잘 작동합니다.

이 문제를 도와주세요.

감사

답변

2

이 보통 빌드 서비스로 인해 발생은 다른 계정에서 실행된다. Dotfuscator는 실행되는 각 사용자 계정에 대해 EULA를 처음 실행하는 동안 EULA를 수락 할 것을 요구합니다.

빌드가 사용하는 계정을 사용하여 빌드 서버에 로그인하고 Dotfuscator를 실행하고 EULA를 수락 할 수 있습니다. 일단 당신이 그 계정에 대한 미래의 처형은 잘 작동합니다.

빌드 서비스 자격 증명을 사용하여 빌드 서버에 로그인 할 수없는 경우 PreEmptive 기술 지원부에서이 문제를 해결할 수있는 다른 방법을 제공 할 수 있습니다. [email protected]으로 지원을 요청하거나 http://preemptive.com/support에서 직접 지원 티켓을 제출할 수 있습니다.