当主项目具有任何.winmd引用时,无法构建Visual Studio Installer项目

时间:2017-11-16 19:21:22

标签: c# .net windows visual-studio

我按照this article中的步骤进行操作。

我的解决方案有一个控制台应用程序项目和一个visual studio安装程序项目。

在控制台应用程序项目中,如果我添加以下任何引用,我将无法再构建我的安装程序项目。

例如,在添加引用对话框中,我转到浏览,然后选择

C:\Program Files (x86)\Windows Kits\10\References\10.0.15063.0\Windows.Foundation.UniversalApiContract\4.0.0.0\Windows.Foundation.UniversalApiContract.winmd

此引用将阻止我的部署项目构建。错误消息是:

ERROR: An error occurred while validating.  HRESULT = '80070057'

同样,所有这些引用都将破坏部署项目的构建。

Windows.Foundation.FoundationContract.winmd
Windows.winmd
Windows.Foundation.UniversalApiContract.winmd
Windows.Foundation.FoundationContract.winmd

我的问题是,如何在不破坏我的安装程序项目的情况下引用这些UWP API?

3 个答案:

答案 0 :(得分:1)

您也可以尝试将引用属性设置为CopyLocal = false

答案 1 :(得分:1)

在使用针对VS2017的新Microsoft Installer项目(企业版)时,我遇到了相同的问题。

我回应Mike的解决方案-手动将项目输出文件添加到项目中。如果您引用“ / bin / Release”项目二进制文件,则无论如何它将始终包含最新副本(前提是您在安装程序之前构建项目)。原来,您不需要在应用程序目录中的.winmd副本即可正常运行。

通过尝试将.winmd文件手动添加到任何安装程序项目中,可以产生80070057错误的GUI版本。

答案 2 :(得分:0)

解决方案是将构建文件(.exe和.dll)复制/粘贴到部署项目的文件系统中,而不是让部署项目构建项目输出。