私はMySolというソリューションを持っています。オブジェクトをインスタンス化してコンパイラエラーが発生する
は私がDeviceProj呼ばMySolでDLLプロジェクトを持っています。
public class Device
{
public int NumFields { get; set; }
}
私もDeviceControl呼ばMySolでWPFユーザーコントロールのプロジェクトを持っています。このプロジェクトは、クラスを定義します。
public class DeviceControl : UserControl
{
private Device _MyDevice;
public Device MyDevice
{
get { return _MyDevice; }
set
{
_MyDevice = value;
for (var i = 0; i < _MyDevice.NumFields; i++)
Main.Children.Add(new TextBox());
}
}
public DeviceControl()
{
MyDevice = new Device { NumFields = 4 };
InitializeComponent();
}
}
最後に、私はDeviceWindow呼ばMySolでWPFアプリケーションプロジェクトを持っている:このクラスは、次のようになります。私はDeviceWindowデザイナーにDeviceControlを追加すると、私は4つのテキストボックスに私のコントロールを参照してください(これが期待されている:デフォルトデバイスはそのNumFields性質を持っているので、設計者は、DeviceControlのインスタンスを作成し、 4に設定すると、4つのテキストボックスがあります)。私はMySolをコンパイルするとき
しかしが、私はエラーを取得:
エラーを1ファイルをコピーすることができません "C:Device.dllを\する\パス\" に「デバッグ\ \ binにDevice.dll "プロセスは、別のプロセスで使用されているため、 'bin \ Debug \ Device.dll'というファイルにアクセスできません。
のインスタンスがWPFデザイナーによって使用されているため、DLLを上書きすることができないためです。
この問題の回避方法はありますか?理解しやすく、
短い説明(多分?):
WPFウィンドウの設計者は、ウィンドウ内で宣言されているすべてのUserControlのインスタンスを作成します。これらのUserControlsの1つに同じソリューションで別のプロジェクト(ObjectProjectという)で宣言されたオブジェクトへの参照が含まれていると、ObjectProject .dllがWPFで使用されるため、ソリューションが構築されませんデザイナー。 Visual Studioでは、使用中の.dllファイルを上書きすることはできません。
解決策を試しましたか?Visual Studioの終了と再オープン?マシンをリブートしますか? – Bernard
はい、私はこれらすべてのことを試しました。私はそれが起こっていることを知っていると思います(DLLはWPFデザイナーが実際に使用しています)。デザイナーやVisual Studioの動作を変更する方法を知りたいだけです。 – ken