我正在通过 TFS Build aka Team Build 调用 dotfuscator 任务,取自-=Dotfuscator Task with Team Build =-并收到以下错误:
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)
dotfuscator中与dotfuscator相关的代码如下:
<!---
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" />
构建机器安装了 dotfuscator Professional。它功能齐全,手动使用时工作正常。
请帮助解决这个问题。
问候