VSTOプロジェクトで奇妙なエラーが発生し、XAMLファイルが無関係のコードでビルドエラーを引き起こしています。
これが私がしたことです
新しいExcel2010アドインプロジェクト(ここではTestAddInという名前)を作成します
読む
ThisAddIn_Startup
ために変更private void ThisAddIn_Startup(object sender, System.EventArgs e) { Worksheet w = Globals.ThisAddIn.Application.Workbooks[1].Sheets[1]; w.Rows[1].Font.Bold = true; }
プロジェクトをビルドします。ビルドは成功するはずです。
WPFユーザーコントロールを新しいアイテムとしてプロジェクトに追加します。
System.Xaml
また、プロジェクト参照として追加する必要があります。プロジェクトを再度ビルドします。ビルドは成功するはずです。
UserControl1.xamlを変更して読み取ります
<UserControl x:Class="TestAddIn.UserControl1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Test="clr-namespace:TestAddIn" <!-- Add this line --> > <Grid> </Grid> </UserControl>
プロジェクトをビルドします。ビルドはエラーメッセージで失敗します
'object'には'Font'の定義が含まれておらず、タイプ'object'の最初の引数を受け入れる拡張メソッド'Font'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
UserControl1.xamlの名前空間行を削除または追加すると、ビルドが成功または失敗します。
WPFファイルはアドインファイルと直接の関係がないため、私はこれに本当に混乱しています。リンクの問題があるに違いないと思いますか?
明示的なキャスト(((Range)w.Rows[1]).Font.Bold = true
)を実行するだけでこれを修正できることに気付きました。しかし、私は本当にこれをあちこちでやりたくありません。
VSTOプロジェクトにWPFファイルを含めることができるようにこれを修正するにはどうすればよいですか?