AfterBuild 대상에서 ILMerge를 실행하는 C# 프로젝트가 있습니다. 그러나 내 명령이 실패하여 -1073741701 코드로 종료되었다는 메시지가 나타납니다.ILMerge가 코드 -1073741701로 종료되었습니다.
내게 이상한 점은 명령 프롬프트에서 출력 된 명령을 실행하면 성공한다는 것입니다. 어떤 생각?
팁 : ILMerge를 사용하여 실버 라이트 용 프로젝트를 "클래식".NET 프로젝트와 병합했습니다. 이 프로젝트는 http://euss.codeplex.com에 있습니다.
P:\Developpement\euss\Dev\ProvideMultiplatformVersions.proj(42,5): error MSB3073: The command ""P:\Developpement\euss\Dev\Dependencies\ILMerge\Ilmerge.exe" /target:library /lib:"C:\Windows\Microsoft.NET\Framework\v2.0.50727" /lib:"P:\Developpement\euss\Dev\Assemblies\." "/targetplatform:v2,C:\Windows\Microsoft.NET\Framework\v2.0.50727" /out:"P:\Developpement\euss\Dev\Assemblies\Net\Evaluant.Uss.PersistenceEngine.Contracts.dll" "P:\Developpement\euss\Dev\Evaluant.Uss.PersistenceEngine.Contracts\obj\Debug\Evaluant.Uss.PersistenceEngine.Contracts.dll" "P:\Developpement\euss\Dev\Evaluant.Uss.Commands\bin\Debug\Evaluant.Uss.Commands.dll" "P:\Developpement\euss\Dev\Evaluant.Uss.Commands\bin\Debug\Evaluant.Uss.Domain.dll" "P:\Developpement\euss\Dev\Evaluant.Uss.Commands\bin\Debug\Evaluant.Uss.Era.dll" "P:\Developpement\euss\Dev\Evaluant.Uss.Metadata\bin\Debug\Evaluant.Uss.MetaData.dll" "P:\Developpement\euss\Dev\Evaluant.Uss.Commands\bin\Debug\Evaluant.Uss.MetaData.Light.dll" "P:\Developpement\euss\Dev\Evaluant.Uss.Commands\bin\Debug\Evaluant.Uss.Model.dll" "P:\Developpement\euss\Dev\Evaluant.Uss.PersistenceEngine.Contracts\bin\Debug\Evaluant.Uss.PersistenceEngine.Contracts.Instrumentation.dll" "P:\Developpement\euss\Dev\Evaluant.Uss.Commands\bin\Debug\Evaluant.Uss.PersistentDescriptors.dll" "P:\Developpement\euss\Dev\Evaluant.Uss.Serializer\bin\Debug\Evaluant.Uss.Serializer.dll" "P:\Developpement\euss\Dev\Evaluant.Uss.Commands\bin\Debug\Evaluant.Uss.Utility.dll"" exited with code -1073741701.
: 나를 괴롭게하는 원인이 프로젝트는 그것은 출력 창에 다음을 생성 내 ilmerge 명령
<CreateItem Include="@(ReferencePath)" Condition="'%(CopyLocal)'=='false' and '$(FwkLibPath)\.'!='%(RootDir)%(Directory).'">
<Output TaskParameter="Include" ItemName="libPaths" />
</CreateItem>
<CreateItem Include="@(ReferencePath)" Condition="'%(CopyLocal)'=='true'">
<Output TaskParameter="Include" ItemName="IlmergeAssemblies" />
</CreateItem>
<Exec Command=""$(SolutionDir)Dependencies\ILMerge\Ilmerge.exe" /target:library /lib:"$(FwkLibPath)" @(libPaths->'/lib:"%(RootDir)%(Directory)."', ' ') "/targetplatform:v2,$(FwkLibPath)" /out:"$(MergedOutDir)$(RootNamespace)$(Suffix)" "$(ProjectDir)@(IntermediateAssembly)" @(IlmergeAssemblies->'"%(FullPath)"', ' ')" />
을 만들 실행 msbuild를 Evaluant.Uss.PersistenceEngine.Contracts
다음입니다
이 명령을 (따옴표없이) 붙여 넣으면 복사됩니다.
.Net2 또는 .Net 4 빌드입니까? 리소스 문제 일 수 있습니까? – rene
.NET 2이고이 솔루션의 프로젝트에 리소스가 없습니다. –
FWIW, -1073741701, 즉 '0xC000007B'는 코드 'STATUS_INVALID_IMAGE_FORMAT'입니다. 'AfterBuild'와 명령 행에서 사용하는 명령 행을 게시 할 수 있습니까? 두 파일에서 동일한 입력 파일을 사용 하시겠습니까? –