Microsoft.CodeAnalysis.CSharp.Scripting の依存パッケージアップデートしたら
◆ 依存パッケージアップデートしたら LINQ でエラーでるようになった
◆ ValueType のエラーでてるけど System.Collections.Immutable のアップデートで起きるみたい
◆ netstandard を参照に追加したらエラーはなくなった
◆ ValueType のエラーでてるけど System.Collections.Immutable のアップデートで起きるみたい
◆ netstandard を参照に追加したらエラーはなくなった
去年頃に Microsoft.CodeAnalysis.CSharp.Scripting をつかったときに 依存パッケージをアップデートしてしまって動かなくなったことがあります
バージョンが違うと動きも違うので依存してるものを更新すると動かなくなるのは仕方ないことです
今回またやってしまったのですが 今回は普通に動いてました
気になったのでちょっと調べてみました
メモによると前回の更新は
今回更新したのはこれでした
バージョンが上がったのは X509Certificates ですが認証関係みたいですし エラーになる原因じゃなさそうです
Analyzers と Algrithms と ReaderWriter が増えてるのですが スクリプト実行するときでもないと関係なさそうです
前回あったエラーはたしかスクリプトを実行してなくてもビルドできなかったはずです
ありうるのは Reflection に関係してる Metadata や型関係の ValueTuple と Immutable くらいです
結局よくわからないしまあいいか と思って気にせずそのプロジェクトでコード書いていたら発現しました
頻繁に使わないし 書き方間違えてたかな と思って確認してるとこれだけでもエラーになりました
これですら間違ってるのかなと 適当な Aggregate のサンプルを持ってきて貼り付けてみてもエラーでした
ついでに Select を試してみるとこっちもエラーです
新規プロジェクトだと問題なくビルドできたので このプロジェクト固有の問題みたいです
エラーは
C# The type 'ValueType' is defined in an assembly that is not referenced. You must add a reference to assembly.
となっていて ValueType が原因みたいです
そういえばさっきアップデートしたのに ValueType があったと気づきました
ただ Microsoft.CodeAnalysis.CSharp.Scripting を再インストールしてその後でパッケージをアップデートして 参照の追加が原因か調べてると
System.Collections.Immutable 1.3.1 -> 1.4.0
のアップデートをするとエラーになりました
あれ ValueType は?
前はできなかった気がするのですけど エラーの修正内容の表示に netstandard というアセンブリを参照に追加 というのが出てきました
とりあえず netstarndard を追加してみたらエラーは消えました
前回がたぶん VisualStudio2015 だったからでしょうか
それとも 最近 .NET Core をインストールしたとか関係あったりする?
.NET Standard と関係ありそうな名前ですが .NET Standard って .NET Framework や .NET Core みたいな実装と違って .NET 系を名乗るのにで最低限必要な部分を示した規格みたいなものを指すのじゃないのでしたっけ?
JavaScript の ECMAScript 的な
参照追加で解決はできましたが 追加したパッケージを使ってなさそうなコードがエラーになるのもおかしな気がしますし 変なアップデートしないほうがいいのかもしれませんね
バージョンが違うと動きも違うので依存してるものを更新すると動かなくなるのは仕方ないことです
今回またやってしまったのですが 今回は普通に動いてました
気になったのでちょっと調べてみました
メモによると前回の更新は
System.ValueTuple 4.3.0 --> 4.4.0
System.Text.Encoding.CodePages 4.3.0 --> 4.4.0
System.Security.Cryptography.X509Certificates 4.3.0 --> 4.3.1
System.Reflection.Metadata 1.4.2 --> 1.5.0
System.Collections.Immutable 1.3.1 --> 1.4.0
今回更新したのはこれでした
Microsoft.CodeAnalysis.Analyzers 1.1.0 -> 2.6.0
System.Collections.Immutable 1.3.1 -> 1.4.0
System.Reflection.Metadata 1.4.2 -> 1.5.0
System.Security.Cryptography.Algorithms 4.3.0 -> 4.3.1
System.Security.Cryptography.X509Certificates 4.3.0 -> 4.3.2
System.Text.Encoding.CodePages 4.3.0 -> 4.4.0
System.ValueTuple 4.3.0 -> 4.4.0
System.Xml.ReaderWriter 4.3.0 -> 4.3.1
バージョンが上がったのは X509Certificates ですが認証関係みたいですし エラーになる原因じゃなさそうです
Analyzers と Algrithms と ReaderWriter が増えてるのですが スクリプト実行するときでもないと関係なさそうです
前回あったエラーはたしかスクリプトを実行してなくてもビルドできなかったはずです
ありうるのは Reflection に関係してる Metadata や型関係の ValueTuple と Immutable くらいです
結局よくわからないしまあいいか と思って気にせずそのプロジェクトでコード書いていたら発現しました
LINQ でエラー
LINQ の Aggregate を使ったところがエラーになりました頻繁に使わないし 書き方間違えてたかな と思って確認してるとこれだけでもエラーになりました
var nums = new List<int> { 1, 2 };
var total = nums.Aggregate((a, b) =>
{
return a + b;
});
これですら間違ってるのかなと 適当な Aggregate のサンプルを持ってきて貼り付けてみてもエラーでした
ついでに Select を試してみるとこっちもエラーです
新規プロジェクトだと問題なくビルドできたので このプロジェクト固有の問題みたいです
エラーは
C# The type 'ValueType' is defined in an assembly that is not referenced. You must add a reference to assembly.
となっていて ValueType が原因みたいです
そういえばさっきアップデートしたのに ValueType があったと気づきました
ただ Microsoft.CodeAnalysis.CSharp.Scripting を再インストールしてその後でパッケージをアップデートして 参照の追加が原因か調べてると
System.Collections.Immutable 1.3.1 -> 1.4.0
のアップデートをするとエラーになりました
あれ ValueType は?
前はできなかった気がするのですけど エラーの修正内容の表示に netstandard というアセンブリを参照に追加 というのが出てきました
とりあえず netstarndard を追加してみたらエラーは消えました
前回がたぶん VisualStudio2015 だったからでしょうか
それとも 最近 .NET Core をインストールしたとか関係あったりする?
.NET Standard と関係ありそうな名前ですが .NET Standard って .NET Framework や .NET Core みたいな実装と違って .NET 系を名乗るのにで最低限必要な部分を示した規格みたいなものを指すのじゃないのでしたっけ?
JavaScript の ECMAScript 的な
参照追加で解決はできましたが 追加したパッケージを使ってなさそうなコードがエラーになるのもおかしな気がしますし 変なアップデートしないほうがいいのかもしれませんね