Domanda

sto invocando compito Dotfuscator via TFS Costruire aka Team Build, tratto da - = Dotfuscator Task con team Build = - e ricevendo il seguente errore:

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)

Il codice rilevanti per Dotfuscator in Dotfuscator è il seguente:

  <!---
  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....-->

Sto usando il seguente compito Dotfuscator:

<Import Project="$(MSBuildExtensionsPath)\PreEmptive\Dotfuscator\4.0\PreEmptive.Dotfuscator.Targets" />

Il sistema di compilazione è installato Dotfuscator professionale. Il suo perfettamente funzionante e funziona bene se usato manualmente.

Si prega di aiuto in questo problema.

Saluti

È stato utile?

Soluzione

Questo di solito è causato dal servizio di compilazione viene eseguito con un account diverso. Dotfuscator richiede l'accettazione del contratto di licenza durante la sua esecuzione iniziale per ogni account utente che gira sotto.

È possibile accedere al server di build utilizzando l'account che la build sta usando, eseguire Dotfuscator e accettare l'EULA. Una volta che avete fatto che le esecuzioni futuri sotto quell'account funzioneranno bene.

Se non si riesce ad accedere al server di build con le credenziali del servizio di compilazione preventiva di assistenza tecnica in grado di fornire un metodo alternativo per ovviare a questo. È possibile contattare il supporto a support@preemptive.com o di presentare una richiesta di assistenza direttamente a http://preemptive.com/support.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top