C#7.0かつ.NETFramework3.5でのDLL生成コンパイル
・最終目標
C#7.0以降かつターゲットフレームワークが.NET Framework 3.5の環境下で
DLLを生成するコンパイルを行いたい。
・状況
Visual Studio 2017 Community, Visual Studio 2019 Communityなど、
VS上でのコンパイルでは、
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3258: プライマリ参照 "*****" は、現在のターゲット フレームワークのバージョン "2.0.0.0" より高いバージョン "4.0.0.0" を持つ .NET Framework アセンブリ "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" に間接的に依存するため、解決できませんでした。
というWARNINGが発生してしまい、参照しているライブラリで定義されているものが使えなくなり、
結果コンパイルエラーになってしまいます。
参照しているライブラリのバージョンはv2.0.50727など、どれもv3.5と互換性のあるものです。 (ildasmで調査)
コマンドラインからcsc.exeを用いて直接コンパイルする方法も試しましたが、
この場合、コンパイルは通りますが生成されるDLLはv4.0.30319になってしまうため
こちらもうまくいきません。
この条件下でなければならない理由があるため、
ターゲットフレームワークバージョンを4.0以降へ
変更することなどは厳しい状態です。
なにか解決策はないでしょうか?
・ためしたこと
Visual Studio 2017 Communityでのコンパイル (結果:コンパイルエラー)
Visual Studio 2019 Communityでのコンパイル (結果:コンパイルエラー)
Visual Studio でターゲットフレームワークを.NET Framework 4.0に変更してコンパイル
(結果:コンパイル成功にはなるが、条件を満たさないため意味無し)
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Roslyn\csc.exe でのコンパイル
(結果:コンパイル成功だが、バージョンが4.0になってしまう)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/12 14:00