■No92033 (tro さん) に返信
> xaml上で外部dllを参照する際、
> Debug/Releaseによって切り替えを行うにはどうしたらよいでしょうか。
> 前提条件として外部dllのソースコードを変更することはできません。
型フォワード用のクラスライブラリを作って、そこで必要なクラスを型フォワードしてしまってはどうでしょうか。
クラス数が多くなると大変になりますが……。
・フォワードするクラスライブラリはMyLibraryとMyLibraryDを参照設定し、エイリアスを設定する。
ここでは、MyLibraryにrelease、MyLibraryDにdebugというエイリアスを設定したと仮定。
・フォワードするクラスライブラリには、以下のコードを含める。
extern alias debug;
extern alias release;
using System.Runtime.CompilerServices;
#if DEBUG
[assembly: TypeForwardedTo(typeof(debug::TestLib.TestControl))]
#else
[assembly: TypeForwardedTo(typeof(release::TestLib.TestControl))]
#endif
・利用するxaml中の、clr-namespceのassemblyをフォワードするクラスライブラリの名前に変更する。
VS2019 Community 16.2.2 +.NET Framework 4.8の環境では、VSのプレビュー表示も有効でした。
|