質問: ### 主題 .NETでのSheetAPIをUnityでVisualstudio2017を使ってC#のスクリプト作成をし実行しようと思ったのですがStep2のInstallパッケージの際にエラーが発生してしまいました。unityからではなく直接visualstudioから同じ作業をするとインストールできました。何が原因なのでしょうか? ※筆者はUnity初心者なので、ライブラリやパッケージの追加方法とか、Unityから作るスクリプトファイル(C#)とvisualstudioから作成するC#ファイルの違いを理解できてないです。また、今回.NETでのやつを参考にしていますが、.NETとC#はほぼ同じものだと思ってやってます ※.NETは投降時最新のものを入れているはずです。バージョンの確認の方法はわからなかったです ### エラー文 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" PM> Install-Package Google.Apis.Sheets.v4 '.NETFramework,Version=v3.5' を対象とするプロジェクト 'Assembly-CSharp' に関して、パッケージ 'Google.Apis.Sheets.v4.1.34.0.1240' の依存関係情報の収集を試行しています 依存関係情報の収集に 0.92 ms かかりました DependencyBehavior 'Lowest' でパッケージ 'Google.Apis.Sheets.v4.1.34.0.1240' の依存関係の解決を試行しています 依存関係情報の解決に 0 ms かかりました パッケージ 'Google.Apis.Sheets.v4.1.34.0.1240' をインストールするアクションを解決しています パッケージ 'Google.Apis.Sheets.v4.1.34.0.1240' をインストールするアクションが解決されました 'nuget.org' からパッケージ 'Google.Apis.Sheets.v4 1.34.0.1240' を取得しています。 インストールに失敗しました。ロールバックします... パッケージ 'Google.Apis.Sheets.v4.1.34.0.1240' はプロジェクト 'Assembly-CSharp' に存在しません パッケージ 'Google.Apis.Sheets.v4.1.34.0.1240' はフォルダー 'C:\Users\(匿名)\UnityBook\Sheettest\packages' に存在しません NuGet の操作の実行に 57.5 ms かかりました Install-Package : パッケージ 'Google.Apis.Sheets.v4 1.34.0.1240' をインストールできませんでした。このパッケージを '.NETFramework,Version=v3.5' を対象とするプロジェクトにインストールし ようとしていますが、そのフレームワークと互換性があるアセンブリ参照またはコンテンツ ファイルがパッケージに含まれていません。詳細については、パッケージの作成者に問い合わせてください。 発生場所 行:1 文字:1 + Install-Package Google.Apis.Sheets.v4 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand 経過した時間: 00:00:02.4735497 PM> ”””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””””” ### 情報 ・VisualStudioCommunity2017Ver15.6.6 ・Unity 2017.4.1f1
回答: 前提としてこのパッケージは.NET 4の対応なので、PlayerSettingsからScripting Runtimeを.NET 4.xにします。 まず、残念なことに現状UnityはNuGetに対応してません。手動でDLLを集める必要があります。 方法の1つとして、 NuGetのサイト で該当のパッケージを検索し、手動でDLLのダウンロードを行い、プロジェクトに配置することはできます。ただし依存関係が多いので、Dependencies欄にある他のパッケージも手動で落とさないといけません。 落とした.nupkgファイルの実体はZIPなので、.zipにリネームして展開して中を探すとDLLが見つかります。 この方法だと依存関係が複雑で落とすDLLが多くなってミスりやすいので、ふたつめの方法としてVisualStudioで作った空プロジェクトにNuGetでパッケージを入れて、そこからDLLを抜き出す方法があります。少々面倒ですが、依存関係の収集をNuGetに任せるのでこちらの方が確実です。 抜き出したDLLはおそらくマネージドDLLとアンマネージドとがあると思いますので このへん や このへん を参照してインポートしてください。