SmartAssembly build failed + msbuild + tfs

stefaanstefaan Posts: 3
edited October 8, 2011 6:24AM in SmartAssembly
I have just updated my version of smartassembly to version 6.0. (I uninstalled version 5 and installed version 6).

When i try to build my project using tfs I receive the folowing error.

C:\Builds\....\: error : SmartAssembly build failed:
C:\Builds\....\ : The system cannot find the file specified. (Exception from HRESULT: 0x80070002)

Here you can find the c# project file
<UsingTask TaskName="SmartAssembly.MSBuild.Tasks.Build" AssemblyName="SmartAssembly.MSBuild.Tasks, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7f465a1c156d4d57" />
  <Target Name="BeforeBuild" Condition=" '$(Configuration)' == 'Release' ">
    <CreateProperty Value="true">
      <Output TaskParameter="Value" PropertyName="RunSmartAssembly" />
    </CreateProperty>
  </Target>
  <Target Name="AfterBuild" Condition=" '$(RunSmartAssembly)' != '' ">
    <SmartAssembly.MSBuild.Tasks.Build ProjectFile="D:\{smartAssembly}\xxx.Sdk.saproj" />
  </Target>

Here you can find the smart assembly project file
<SmartAssemblyProject ProjectId="{e388b26e-0ab5-4a77-861d-bf9767c5ae4c}" Version="2.0">
    <MainAssemblyFileName>..\Development\xxx\xxx.Sdk.dll</MainAssemblyFileName>
    <Configuration Name="Release">
        <ApplicationName />
        <Destination DestinationFileName="..\Production\SDK20\xxx.Sdk.dll" />
        <Assemblies>
            <Assembly AssemblyName="xxx.Sdk, Culture=neutral, PublicKeyToken=b602da213aee6670">
                <Merging>
                    <ResourcesCompression />
                    <MemberRefsProxy />
                    <Pruning Prune="1">
                        <Exclusion />
                    </Pruning>
                    <Obfuscation Obfuscate="1">
                        <Exclusion />
                    </Obfuscation>
                    <ControlFlow Obfuscate="1" />
                    <ResourcesPruning />
                </Merging>
            </Assembly>
        </Assemblies>
        <Options>
            <Obfuscation FieldsNameMangling="2" NameMangling="2" />
            <ExceptionReporting Template="res:{SmartExceptions}.1033.dll" />
            <StrongNameSigning KeyFileName="C:\Resources\XRD.pfx" Password="****" Sign="1" />
            <OtherProtections AddMetadataStream="1" SuppressIldasm="1" />
            <StringsEncoding />
            <OtherOptimizations />
            <Debugging />
            <FeatureUsageReporting Template="res:SmartUsageWithUIConsentFirstRun1033.dll" />
        </Options>
    </Configuration>
</SmartAssemblyProject>

Comments

  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    Thanks for your post. Unfortunately we cannot tell from this information if it's MSBUILD not finding SmartAssembly, SmartAssembly unable to load the project, or something else, like a crypto key that can't be found.

    Have you check that you have SmartAssembly.MSBuild.Tasks version 6.0.0.0 in your GAC?
  • I have checked this and, the msbuild dll is present in the gac. I now fixed this by executing smart assembly using the command line interface.
  • On 64-bit there are 2 msbuild.exe:

    1) c:\windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe

    fails with
    Smartassembly failes with The system cannot find the file specified. (Exception from HRESULT: 0x80070002)

    2) c:\windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
    Works!
  • rsrs Posts: 13 Bronze 2
    This problem exists because the SmartAssembly setup does not write the install path to the 64bit portion of the registry - therefore when running under the 64bit msbuild process the smartassembly msbuild task cannot find the location of smartassembly.com.

    You can fix this particular problem by setting this value manually:
    HKEY_LOCAL_MACHINE\SOFTWARE\Red Gate\SmartAssembly 6\Path="C:\Program Files\Red Gate\SmartAssembly 6\"
Sign In or Register to comment.