2009-05-04 43 views
0

我用VS2008创建了ClickOnce解决方案。 我的主项目引用另一个项目谁引用COM DLL为“链接”。ClickOnce&References

当我在VS中构建我的解决方案时,来自其他项目的dll会移动到我的bin文件夹中,但当我发布并启动项目时,这些文件不会显示在我的Local Settings \ Apps \ 2.0 ...文件夹中。

我知道我可以添加其他项目的每个DLL作为我的主要项目的参考,但我想一个更清洁的解决方案......

这可能吗?

回答

2

首先将这些文件直接添加到您的项目中。 然后转到应用程序属性 - >发布 - >应用程序文件

选择“显示所有文件”,如果你没有看到你所需要的文件,然后设置其 发布状态为“包含” NOT“包括(自动)”。这很重要,否则他们不会被添加。

请注意,如果您更新文件,您将不得不删除它们并将它们再次添加 并再次设置它们的发布状态。这是一个小错误。

见我的前一个问题的更多信息: ClickOnce - Overwriting content files

0

您需要在项目的“发布”选项卡中打开“应用程序文件”对话框。从那里你可以设置每个文件的发布类型(包括,先决条件等)。

如果它是一个非托管DLL,则需要将实际的.dll作为文件添加到项目中,并将其构建操作标记为“数据”。然后,您可以将该文件的发布类型设置为包含。

+0

好的,所以我必须添加每个COM DLL到我的主项目,即使它已经包含在被引用的项目中? – pebg 2009-05-04 13:43:10

+0

如果它实际上包含作为参考,那么只需将文件的发布状态修改为“包含”即可。如果不包括它(例如,如果你通过pinvoke使用函数),那么你将不得不手动添加它。 – 2009-05-04 13:53:03

0

我有同样的问题....并通过许多选项后去解决这个问题的唯一办法,是通过将这些DLL文件引用。

它可行,但我希望将来有更清晰的解决方案。