我有我的.build设置

<csc platform='x86' target='winexe' output='${validate.file}' debug='${debug}' warnaserror='true'>

但我明白了
  [csc] error CS1607: Warning as Error: Assembly generation -- Referenced assembly 'System.Data.dll' targets a different processor
  [csc] error CS1607: Warning as Error: Assembly generation -- Referenced assembly 'System.Data.OracleClient.dll' targets a different processor
  [csc] error CS1607: Warning as Error: Assembly generation -- Referenced assembly 'System.EnterpriseServices.dll' targets a different processor
  [csc] error CS1607: Warning as Error: Assembly generation -- Referenced assembly 'System.Transactions.dll' targets a different processor
  [csc] error CS1607: Warning as Error: Assembly generation -- Referenced assembly 'System.Web.dll' targets a different processor
  [csc] error CS1607: Warning as Error: Assembly generation -- Referenced assembly 'mscorlib.dll' targets a different processor

External Program Failed: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe (return code was 1)

当我使用NAnt .92时。如果我使用NAnt .91,一切正常。如何更新.build与.92一起使用?我在Win7 64Bit上构建。

在具有完全相同的.build文件的NAnt .91下,使用的外部程序是C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe。请注意框架,而不是Framework64。当选择plateform='x86'时,NAnt .92似乎使用了错误的框架。

最佳答案

一种简单的解决方法是按如下方式修改csc任务:

<csc platform='x86' target='winexe' output='${validate.file}' debug='${debug}' warnaserror='true'>
    <warnaserror>
        <exclude number="1607" />
    </warnaserror>

这样,您仍然会收到作为错误的警告(这是您想要的,我猜是这样),而不是特别是CS1607。也许这是您可以忍受的妥协?

这确实是一个有趣的问题。深入研究NAnt.exe.config,我看到框架“net-4.0”的定义始终在以下位置查找其程序集:
frameworkdirectory="${path::combine(installRoot, 'v4.0.30319')}"
frameworkassemblydirectory="${path::combine(installRoot, 'v4.0.30319')}"

installRoot来自注册表,该注册表始终具有值Framework64。这意味着当您定位到“net-4.0”时,您已经选择了Framework64文件夹。在您在csc任务中指定应该使用x86时,已经为时已晚。

一个不错的尝试是在NAnt.exe.config中创建一个新的框架定义,将net-4.0复制到net-4.0-x86中。然后更改该定义以定位Framework路径而不是Framework64。它可能会起作用。当然,这时您需要告诉Nant以net-4.0-x86为目标,并且您将拥有被黑的自定义NAnt.exe.config文件。

关于nant - NAnt平台错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11145589/

10-17 02:33