2013-07-28 40 views
0

我试图强制使用Win8桌面主题(PresentationFramework.Aero2.dll),但是当我使用ClickOnce部署应用程序时,未将该程序集添加到部署中。PresentationFramework.Aero2未包含在ClickOnce部署文件夹中

我试过设置CopyToLocal = true - 没有帮助。我试图将它“包含”在ClickOnce安装程序中,但它甚至没有出现在列表中。

可以做些什么?

+0

它包含在.NET Framework中。你不要自己部署它,就像你不部署System.dll一样。 –

+0

@HansPassant这是一个主题组件。如果他计划让他的WPF应用程序在非Windows 8盒子中维护'Aero2'(Windows 8)主题,那么OP应该包含这一点。 –

+0

@HighCore,任何想法为什么它没有被部署?我甚至试图手动将文件复制到已部署的应用程序文件夹,但它仍然无法工作。 –

回答

0

在WPF应用程序中发生了同样的事情,我有一个未包含在ClickOnce包中的程序集引用,尽管在Project部署设置中设置为Include

在我的情况下,程序集是Microsoft.Expression.Drawing.dll,但我想你的情况是一样的。

我解决了这个使用一个有点哈克解决方案:

通过添加一些代码引用该组件内部类创建一个强有力的参考组件,例如:

public static class DummyClass 
{ 
    public static Microsoft.Windows.Themes.BulletChrome DummyProperty {get;set;} 
    //BulletChrome is a class defined in PresentationFramework.Aero.dll 
} 

我敢肯定这个问题必须有一个更加优雅的解决方案,但上述方法对我来说很合适。

相关问题