2011-09-20 5 views
4

그래서 크로스 플랫폼으로 이동하는 VS2010 C# 프로젝트를 얻으려고합니다. 첫 번째 목표는 Windows 용 Mono 2.10.5에서 빌드하는 것입니다. 아직 어떤 코드도 건드리지 않았습니다 - 저는 xbuild가 최근에 sln 파일을 만들 수있는 능력부터 시작합니다. (덧붙여서 Jenkins를 사용하여 빌드를 트리거합니다. 명령 줄에서 동일한 결과를 얻지는 않습니다.)모노 xbuild 오류 CS1548 - 키 파일의 형식이 잘못되었습니다

"오류가 발생합니다. CS1548 : 어셈블리 서명 중에 오류가 발생했습니다. 지정된 키 파일 'AlphaBeta.pfx '형식이 올바르지 않습니다.'. 이 오류에는별로 주스가 없습니다. 아무도이 원인을 알 수 있습니까? 미리 감사드립니다! 아래

전체 출력 :

C:\Program Files\Jenkins\jobs\AlphaBeta\...\AlphaSolution>"C:\Program Files\Mono-2.10.5\bin\xbuild" AlphaSolution.sln 
XBuild Engine Version 2.10.5.0 
Mono, Version 2.10.5.0 
Copyright (C) Marek Sieradzki 2005-2008, Novell 2008-2011. 

Build started 9/20/2011 3:54:14 PM. 

C:\Program Files\Jenkins\jobs\AlphaBeta\...\AlphaSolution\AlphaSolution.sln: warning : Ignoring vcproj 'ZBM'. 
C:\Program Files\Jenkins\jobs\AlphaBeta\...\AlphaSolution\AlphaSolution.sln: warning : Don't know how to handle GlobalSection TestCaseManagementSettings, Ignoring. 
C:\Program Files\Jenkins\jobs\AlphaBeta\...\AlphaSolution\AlphaSolution.sln: warning : Failed to find project d393406d-3397-4907-a536-2a4b77512bc6 
Project "C:\Program Files\Jenkins\jobs\AlphaBeta\...\AlphaSolution\AlphaSolution.sln" (default target(s)): 
    Target ValidateSolutionConfiguration: 
     Building solution configuration "Debug|Mixed Platforms". 
    Target Build: 
     Project "C:\Program Files\Jenkins\jobs\AlphaBeta\...\AlphaSolution\AlphaCommon\AlphaCommon.csproj" (default target(s)): 
      Target PrepareForBuild: 
       Configuration: Debug Platform: AnyCPU 
      Target GenerateSatelliteAssemblies: 
      No input files were specified for target GenerateSatelliteAssemblies, skipping. 
      Target CoreCompile: 
       Tool C:\PROGRA~1\MONO-2~1.5\bin\dmcs.bat execution started with arguments: /noconfig /debug:full /debug+ /keyfile:AlphaBeta.pfx /optimize- /out:obj\Debug\AlphaCommon.dll AlphaCommon.cs Properties\AssemblyInfo.cs /target:library /define:"DEBUG;TRACE" /reference:C:\PROGRA~1\MONO-2~1.5\lib\mono\xbuild-frameworks\.NETFramework\v4.0\RedistList\..\..\..\..\4.0\System.dll /reference:C:\PROGRA~1\MONO-2~1.5\lib\mono\xbuild-frameworks\.NETFramework\v4.0\RedistList\..\..\..\..\4.0\System.Xml.Linq.dll /reference:C:\PROGRA~1\MONO-2~1.5\lib\mono\xbuild-frameworks\.NETFramework\v4.0\RedistList\..\..\..\..\4.0\System.Data.DataSetExtensions.dll /reference:C:\PROGRA~1\MONO-2~1.5\lib\mono\xbuild-frameworks\.NETFramework\v4.0\RedistList\..\..\..\..\4.0\Microsoft.CSharp.dll /reference:C:\PROGRA~1\MONO-2~1.5\lib\mono\xbuild-frameworks\.NETFramework\v4.0\RedistList\..\..\..\..\4.0\System.Data.dll /reference:C:\PROGRA~1\MONO-2~1.5\lib\mono\xbuild-frameworks\.NETFramework\v4.0\RedistList\..\..\..\..\4.0\System.Xml.dll /reference:C:\PROGRA~1\MONO-2~1.5\lib\mono\xbuild-frameworks\.NETFramework\v4.0\RedistList\..\..\..\..\4.0\System.Core.dll /warn:4 
: error CS1548: Error during assembly signing. The specified key file `AlphaBeta.pfx' has incorrect format 
      Task "Csc" execution -- FAILED 
      Done building target "CoreCompile" in project "C:\Program Files\Jenkins\jobs\AlphaBeta\...\AlphaSolution\AlphaCommon\AlphaCommon.csproj".-- FAILED 
+1

이 링크에는 어셈블리에 서명하는 방법을 알려주는 다른 링크가 있으므로 여기를 확인하십시오. http://msdn.microsoft.com/en-us/library/t21abc4c.aspx – MStp

답변

4

모노 어셈블리를 strongnaming에 사용되는 키를 저장하는 PKCS # 12 (.PFX) 파일을 사용하여 지원하지 않습니다. 이는 알려진 문제점이며 Xamarin의 bugzilla # 725에서 추적됩니다.

해결 방법은 키를 .snk 파일로 내보내 프로젝트를 빌드 할 때 사용하는 것입니다.

대답 here은 .pnx에서 .snk을 생성하는 방법에 대한 예제를 제공합니다.

+0

무언가를 용서할 수는 없지만 자신의 키를'.snk' 파일로 내보내는 방법을 재현 할 수있는 예제가 있습니다. ? – 719016

관련 문제