2015-09-16 33 views
1

注意:我在其他帖子中看到了這個錯誤,但問題是,我看到的主要解決方案,明確定義框架而不是使用默認值,不起作用。正在發佈的項目不支持框架「dnx-clr-win-x86-beta6」?

我的項目有1.0.0-beta6定義爲global.json中的版本,並且據我所知它不使用任何不支持beta6的東西。我試着用框架「dnxcore50」和「dotnet」來編譯這個項目,但都不行(我的首選是dotnet兼容性,但我會用)。

這裏是我的project.json:

{ 
    "version": "1.0.0-*", 
    "description": "Cormaran Class Library", 
    "authors": [ "Me" ], 
    "tags": [ "" ], 
    "projectUrl": "", 
    "licenseUrl": "", 

    "dependencies": { 
    "Microsoft.CSharp": "4.0.0-beta-23019", 
    "System.Net.Sockets": "4.0.10-beta-23123", 
    "System.Text.Encoding": "4.0.10-beta-23019", 
    "Newtonsoft.Json": "7.0.1", 
    "System.Collections": "4.0.11-beta-23225" 
    }, 

    "frameworks": { 
    "dnxcore50": { 

    } 
    } 
} 

這是我的global.json:

{ 
    "projects": [ "src", "test" ], 
    "sdk": { 
    "version": "1.0.0-beta6", 
    "runtime": "clr", 
    "architecture": "x86" 
    } 
} 

現在,這可能不是靜態的(但也可能是有益的),所以我把項目的github在這裏供參考(如果你基於它做任何聲明,我會在這裏添加代碼以防其他人有這個問題)。

https://github.com/ThePlatinumTaco/Cormaran/tree/master/src/

回答

1

有多種原因可能導致這類問題。我花了一段時間才弄清楚VS/Nuget有時會把依賴關係放在主要的依賴關係部分,這真的應該在dnxcore50特定的依賴關係中。人們通過從project.json中刪除dnx451來解決這些錯誤的方法很簡單,就像你所做的一樣,但是你不需要這樣做。你只需要移動的依賴關係是這樣的:在「某些」案件

{ 
    "version": "1.0.0-*", 
    "description": "Cormaran Class Library", 
    "authors": [ "Me" ], 
    "tags": [ "" ], 
    "projectUrl": "", 
    "licenseUrl": "", 

    "dependencies": { 
    "Newtonsoft.Json": "7.0.1" 
    }, 

    "frameworks": { 
    "dnx451" : { 
     "frameworkAssemblies": { 
      "System.Xml": "" 
     } 
    }, 
    "dnxcore50": { 
     "dependencies": { 
      "Microsoft.CSharp": "4.0.0-beta-23019", 
      "System.Net.Sockets": "4.0.10-beta-23019", 
      "System.Text.Encoding": "4.0.10-beta-23019", 
      "System.Collections": "4.0.10-beta-23019", 
      "System.Xml.XDocument": "4.0.10-beta-23019" 
     } 

    } 
    } 
} 

您可能需要添加下dnx451 frameworkAssemblies那種對應於一些依賴下dnxcore50例如如圖與其中的System.Xml如果您還需要dnxcore50中的System.Xml.XDocument,則需要使用它。我補充說,給你一個例子,除非你使用xml類,否則你可能不需要你的項目。

您發佈的內容中的另一個問題是版本不匹配,請注意我如何更正您發佈的依存關係的版本以保持它們處於相同的beta6級別,而您發佈的某些版本是較新的beta7版本-23225。這是令人困惑的,因爲這些並沒有說明他們測試了哪個測試版,但是有一個對應關係。

要檢查的其他事項是wwwroot文件夾中的web.config文件,它也可能具有有關要使用哪個運行時的設置,並右鍵單擊prject並轉至屬性以查看項目是否針對特定運行時配置。所有這些都必須同步。

也在您的global.json中指定了「clr」,它確實對應於dnx451,而dnxcore50對應於「coreclr」