Visual studio 如何在Visual Studio中设置给定资源文件的目标输出路径

Visual studio 如何在Visual Studio中设置给定资源文件的目标输出路径,visual-studio,resources,Visual Studio,Resources,在我的VS解决方案的主项目中,我有一个资源文件夹,其中包含一些必需的外部工具。在构建和发布解决方案时,我会得到一个带有所有必需文件的.\Resources*。 到目前为止还不错 但是,我必须将一些文件移动到父目录。 我的第一次尝试是在构建后事件中这样做。它可以工作并将它们移动到正确的文件夹中。 尽管如此,在发布输出中,它们仍然显示在Resources文件夹中,我需要它们出现在父文件夹中:/ 有没有办法在Visual Studio中设置资源的目标输出路径?我曾经遇到过类似的情况。我发现在visua

在我的VS解决方案的主项目中,我有一个资源文件夹,其中包含一些必需的外部工具。在构建和发布解决方案时,我会得到一个带有所有必需文件的.\Resources*。 到目前为止还不错

但是,我必须将一些文件移动到父目录。 我的第一次尝试是在构建后事件中这样做。它可以工作并将它们移动到正确的文件夹中。 尽管如此,在发布输出中,它们仍然显示在Resources文件夹中,我需要它们出现在父文件夹中:/


有没有办法在Visual Studio中设置资源的目标输出路径?

我曾经遇到过类似的情况。我发现在visualstudio中定制输出路径和类似的路径变得非常麻烦,达到了我想要的程度

我最终让VisualStudio自己处理文件/项目结构,并编写了一个构建后脚本,将所需的所有内容复制到最终的“publish ready”目录中

然后,我将VisualStudio中的执行目标设置为新位置,这样我就可以正常运行/调试,但要使用按我需要的方式组织的新文件夹。小心,我认为这是一个用户项目设置;因此,如果其他开发人员愿意,他们也需要在他们的机器上这样做

我确实记得更改了一些输出路径等,以使构建后脚本更简单。但是,当您向解决方案中添加新项目时,这样的更改可能会导致麻烦;您可能需要将它们配置为匹配。这完全是一种权衡:)

两个想法:

  • 也许您可以将资源移动到另一个项目中—一个仅用于资源的项目—然后将其
    构建操作设置为
    内容
    ,并将
    复制到输出
    设置为
    。然后参考这个新项目并构建解决方案。(这可能不是你想要的,只是一个想法)
  • 为什么不将您的资源嵌入到资源中呢。将它们全部保存在
    资源\
    目录中,并通过编程方式访问它们
经过一些研究和实验,我解决了我的问题。 不过,以下是我在这个过程中学到的

第一次尝试是将文件添加到项目根目录并将其标记为资源。出版后,它成功了。但是,让这些文件在项目中生根是很糟糕的

因为我需要在另一个VS解决方案中编译一些*.exe文件,所以将它们添加为项目引用。尝试一下,它通过了“发布”测试。但是。。这不是最好的方法

之后,通过一些脚本和后期构建事件,我将所需文件复制到正确的文件夹中。作品但发布后,它们不会出现在包中

但是,使用Mage工具仍有可能:

这导致了一些有希望的实验,但它们最终帮助我认识到MS ClickOnce的局限性,所以我决定尝试其他工具

以下是一个良好的开端:

如果它们属于父文件夹,为什么不先将它们放在父文件夹中?主应用程序使用多个.exe文件(通过新建流程+启动),我不希望它们与代码混合。另一方面,如果我更改它们的路径,每个使用此功能的用户都必须正确设置其路径,而目前这不是一个选项。。这就是我必须在根文件夹中发布它们的原因:/