2009-10-02 52 views
2

如何將silverlight-3.0目標框架添加到NAnt?我嘗試修改基於silverlight-2.0配置文件的nant.exe.config文件,但在編譯期間失敗CS0518: Type "System.Object" not defined or imported [從波蘭語翻譯過來的錯誤信息]。此外,silverlight-2.0目標似乎沒有像Visual Studio那樣設置「SILVERIGHT」條件編譯定義,這使編寫多目標庫變得複雜。我可以使用NAnt來定位Silverlight 3.0嗎?

有沒有人在這裏構建混合的目標解決方案(包括用於完整.NET框架和Silverlight的庫)?

回答

1

您可以下載NAnt 0.91 Alpha 2版本,其中包括對net-4.0框架的支持。該框架適用於使用Silverlight 4應用程序編譯解決方案。

我有一個解決方案,其中包括一個Silverlight 4應用程序和一個.NET 3.5 ASP.NET Web項目,我使用alpha版本net-4.0框架進行編譯,它工作的很好。

或者,仍然使用Nant alpha版本,如果您只需要編譯一個帶Nant的SilverLight 4應用程序,並且您可以從Nant CVS here.中獲取silverlight-4.0框架標記並將該標記添加到您的Nant.exe.config文件。

0

@skolima ...這可能是你沒有指向正確的目錄嗎?我真的很想知道這個,因爲我正在使用SL3,並希望使用nAnt來構建自動化。

也想知道,根據SO上的一些其他帖子,您可能需要編輯nant.exe.config文件來爲silverlight-3添加「配置文件」。

3

看起來理查德B在Nant.exe.config修改的正確軌道上。我將下面的XML添加到配置文件中,並且能夠將我的主構建文件中的nant.settings.currentframework屬性設置爲silverlight-3.0,並且事情像魅力一樣工作。 (注:我把它放在silverlight-2.0框架定義之後的第775行的配置文件中)。希望這有幫助

 <framework 
       name="silverlight-3.0" 
       family="silverlight" 
       version="3.0" 
       description="Microsoft Silverlight 3.0" 
       sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}" 
       frameworkdirectory="${path::combine(installRoot, 'v3.5')}" 
       frameworkassemblydirectory="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight/3.0.40818.0" 
       clrversion="2.0.50727" 
       > 
       <runtime> 
        <modes> 
         <strict> 
          <environment> 
           <variable name="COMPLUS_VERSION" value="v2.0.50727" /> 
          </environment> 
         </strict> 
        </modes> 
       </runtime> 
       <reference-assemblies basedir="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight/3.0.40818.0"> 
        <include name="agclr.dll" /> 
        <include name="Microsoft.VisualBasic.dll" /> 
        <include name="mscorlib.dll" /> 
        <include name="System.Core.dll" /> 
        <include name="System.dll" /> 
        <include name="System.Silverlight.dll" /> 
        <include name="System.Xml.dll" /> 
     <include name="System.Windows.dll" /> 
     <include name="System.Windows.Browser.dll" /> 
       </reference-assemblies> 
       <task-assemblies> 
        <!-- include MS.NET version-neutral assemblies --> 
        <include name="extensions/net/neutral/**/*.dll" /> 
        <!-- include MS.NET 2.0 specific assemblies --> 
        <include name="extensions/net/2.0/**/*.dll" /> 
        <!-- include MS.NET specific task assembly --> 
        <include name="NAnt.MSNetTasks.dll" /> 
        <!-- include MS.NET specific test assembly --> 
        <include name="NAnt.MSNet.Tests.dll" /> 
        <!-- include .NET 2.0 specific assemblies --> 
        <include name="extensions/common/2.0/**/*.dll" /> 
       </task-assemblies> 
       <tool-paths> 
        <directory name="${path::combine(sdkInstallRoot, 'bin')}" 
         if="${property::exists('sdkInstallRoot')}" /> 
        <directory name="${path::combine(installRoot, 'v2.0.50727')}" /> 
        <directory name="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight/3.0.40818.0" /> 
       </tool-paths> 
       <project> 
        <readregistry 
         property="installRoot" 
         key="SOFTWARE\Microsoft\.NETFramework\InstallRoot" 
         hive="LocalMachine" /> 
        <readregistry 
         property="sdkInstallRoot" 
         key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0" 
         hive="LocalMachine" 
         failonerror="false" /> 
       </project> 
       <tasks> 
        <task name="csc"> 
         <attribute name="noconfig">true</attribute> 
         <attribute name="nostdlib">true</attribute> 
         <attribute name="supportsnowarnlist">true</attribute> 
         <attribute name="supportswarnaserrorlist">true</attribute> 
         <attribute name="supportskeycontainer">true</attribute> 
         <attribute name="supportskeyfile">true</attribute> 
         <attribute name="supportsdelaysign">true</attribute> 
         <attribute name="supportsplatform">true</attribute> 
         <attribute name="supportslangversion">true</attribute> 
        </task> 
        <task name="vbc"> 
         <attribute name="nostdlib">true</attribute> 
         <attribute name="supportsdocgeneration">true</attribute> 
         <attribute name="supportsnostdlib">true</attribute> 
         <attribute name="supportsnowarnlist">true</attribute> 
         <attribute name="supportskeycontainer">true</attribute> 
         <attribute name="supportskeyfile">true</attribute> 
         <attribute name="supportsdelaysign">true</attribute> 
         <attribute name="supportsplatform">true</attribute> 
         <attribute name="supportswarnaserrorlist">true</attribute> 
        </task> 
        <task name="jsc"> 
         <attribute name="supportsplatform">true</attribute> 
        </task> 
        <task name="vjc"> 
         <attribute name="supportsnowarnlist">true</attribute> 
         <attribute name="supportskeycontainer">true</attribute> 
         <attribute name="supportskeyfile">true</attribute> 
         <attribute name="supportsdelaysign">true</attribute> 
        </task> 
        <task name="resgen"> 
         <attribute name="supportsassemblyreferences">true</attribute> 
         <attribute name="supportsexternalfilereferences">true</attribute> 
        </task> 
        <task name="delay-sign"> 
         <attribute name="exename">sn</attribute> 
        </task> 
        <task name="license"> 
         <attribute name="exename">lc</attribute> 
         <attribute name="supportsassemblyreferences">true</attribute> 
        </task> 
       </tasks> 
      </framework> 
+1

Thx @ckramer ...我需要在某個時候嘗試腳本...你能發佈你的nAnt構建文件,以便我們可以看到你的用法(特別是用於創建xap文件嗎?) – 2009-11-30 05:31:52

+0

」設置爲「$ {environment :: get-folder-path('ProgramFiles')}/Reference Assemblies/Microsoft/Framework/Silverlight/v3.0」 v4環境並安裝了Silverlight 3 SDK。在安裝SL4時,ckramer示例中的SL3程序集目錄不存在。 – 2010-11-01 10:38:02

相關問題