2011-09-20 113 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

單不支持使用PKCS#12(.PFX)文件來存儲用於strongnaming組件密鑰。這是一個已知問題,並在Xamarin的bugzilla#725上跟蹤。

解決方法是將密鑰導出到.snk文件中,並在構建項目時使用該密鑰。

的答案here提供的如何從一個.pfx一個.SNK例子。

+0

原諒無知,但有關於如何一個人的關鍵導出到'.snk'文件重複的例子,並用它構建自己的項目時? – 719016

相關問題