-
このように見えるように
- (追加したプロジェクトの依存関係)作成した
- :
project.json
を変更し、新たな
Class Library (Package)
プロジェクト
project.jsonタイプ 'DateTime'は、参照されていないアセンブリで定義されていますか?
{
"version": "1.0.0-*",
"description": "WMI.ECM.PCMS.Services.Acomba Class Library",
"authors": [ "WILL" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"dependencies": {
"Acomba.SDK": "2.0.0",
"WMI.ECM.Inventory.Models": "",
"WMI.ECM.Inventory.Services": "",
"WMI.ECM.Inventory.Services.Contracts": ""
},
"frameworks": {
"dnx451": { },
"dnxcore50": {
"dependencies": {
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime": "4.0.21-beta-23516",
"System.Threading": "4.0.11-beta-23516"
}
}
}
}
- ソリューションをコンパイルすると、このエラーが表示されます:
The type 'DateTime' is defined in an assembly that is not referenced. You must add a reference to assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PunlicKeyToken=b77a5c561934e089'.
- しかし、私はまた、DNX451とDNXCORE50を対象と私の他のプロジェクトでこの問題はありません。また、
mscorlib.dll
がこのスクリーンショットで問題のプロジェクトで実際に参照されていることを述べておきます。Referenced assemblies
その結果、私は無知に終わる検索をいくつか行いました。
私はそうのような私project.jsonでdnx451 {}に依存関係を追加しようとしました:私はどこかにこのようなソリューションを読んだ覚えて、それがうまくいかなかったので
"dnx451": {
"dependencies": {
"Microsoft.CSharp": "",
"System.Runtime": ""
...
}
}
。
回答のほとんどは
web.config
に参照を追加することによって、それを解決するWebプロジェクトの古いバージョンのためのものです。まあ、Class Library (Package)
にはweb.config
がありません。何も変わっていないMicrosoft .NET Framework 4.5.2 Developer Pack
、:私もダウンロードして、このパッチをインストールし
The type ‘System.Object’ is defined in an assembly that is not reference (MVC + PCL issue)
- 。
また、フレームワークの各バージョンまたはそれに類するもののファサードについて話しているため、議論されていることはわかりません。
私は、実際の問題に何らかの役に立つ解決策を見つけることができませんが、それは一般的な問題のように見えます。バージョン14.0.25123.00アップデート2
- Visual Studioのコミュニティ2015を使用して
。01055
- ASP.NET MVCどのCOMライブラリによって引き起こされているように見えるのxUnit DNXユニットテストプロジェクトテンプレートのための6インストール
- SideWaffle
- ビジュアルC#2015
UPDATE
私はVS CMDラインからこのツールを使ってインポートしました:Tlbimp.exe (Type Library Importer)
。
要するに、AcoSDK.dllは上記のツールを使用してインポートしたCOMライブラリで、すべてのCOMタイプが.NETタイプとして解決された.NETアセンブリを作成します。
次に、NuGet.exe
を使用して、自分のプライベートフィードで公開したパッケージを作成しました。
そして、自分のプロジェクトのパッケージを"Acomba.SDK": "2.0.0"
と私のproject.json
で参照しました。
このパッケージのDateTimeプロパティを使用すると、ビルドエラーが発生します。
public DateTime CreatedAt { get { return p.PrTimeModified; } }
そして、これはしません:たとえば、これはエラーが発生する原因となる.NETのDateTimeのため public DateTime CreatedAt { get { return new DateTime(); } }
COM型が日付です。しかし、それは、tlbimp.exe
コマンドラインで提供されている例の手順に従って、DateTimeと見なされるはずです。
DNXCORE50でDateTimeがサポートされていないことがわかったプロパティにドットを追加したときだけです。それは、 'new DateTime()'(see screenshot here
)のようなネイティブのDateTimeの場合を除きます。
これを回避する方法についての手掛かりはありますか? GitHubの上で報告されたこの問題を1として
なぜあなたはこれをやっていますか?コアCLR/CoreFxのターゲット設定は、LinuxやOSX上でコードを実行するのに便利です。そのCOMコンポーネントは決してできません。 –
@HansPassant:どうしてですか?つまり、.NETのインポートされた型アセンブリでラップされ、NuGetパッケージとして公開され、次に適切な互換性パッケージを使用して参照されると、このCOMが他のOSで動作するのを防ぐことができますか?加えて、私はまだここで私の学習曲線です。 =) –