我在我的VSTO項目中收到一個奇怪的錯誤,其中一個XAML文件在無關代碼中導致生成錯誤。添加一個WPF命名空間會導致VSTO編譯錯誤
這裏是我做過什麼
創建新的Excel 2010加載項項目(這裏命名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>
構建項目。生成失敗,錯誤消息
「對象」不包含「字體」的定義和沒有擴展方法「字體」接受類型「對象」的第一個參數可以找到(是否缺少using指令或程序集引用?)
移除或添加在UserControl1.xaml命名空間行將導致構建成功或失敗。
我真的被這個迷惑,因爲WPF文件有沒有直接關係的加載項文件。我想必須有一個鏈接問題?
我知道我可以只是在做顯式轉換(((Range)w.Rows[1]).Font.Bold = true
)解決這個問題。但我並不是真的想在這個地方做到這一點。
我該如何解決這個問題,以便在我的VSTO項目中有一個WPF文件?
我正在使用Visual Studio 2013,並剛剛遇到此問題。在我的情況下,如果沒有這個解決方案,它會迫使我強制引用所有引用Interop的變量。所以謝謝! – 2015-06-05 18:30:59