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

时间:2011-05-04 16:51:17

标签: visual-studio resources

在我的VS解决方案的主项目中,我有一个包含一些必需外部工具的Resources文件夹。在构建和发布解决方案时,我得到一个。\ Resources *,其中包含所有必需的文件。 到目前为止一切都很好。

但是我必须将一些文件移动到父目录。 我的第一次尝试是使用Post Build Events进行的。它工作,并确实将它们移动到正确的文件夹。 然而,在发布输出中,它们仍然出现在Resources文件夹中,我需要它们在父文件夹中:/

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

3 个答案:

答案 0 :(得分:1)

经过一些研究和实验,我解决了我的问题。 不过,这是我在这个过程中学到的东西。

第一次尝试是将文件添加到项目根目录并将其标记为资源。发布后,它工作。但是在项目中使用这些文件是蹩脚的。

由于我需要在另一个VS解决方案中编译的一些* .exe文件,因此将它们添加为项目引用。试一试,它通过了“Publish”测试。但仍然......不是最好的方法。

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

但是,Mage工具仍有可能:

http://msdn.microsoft.com/en-us/library/acz3y3te.aspx

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

这是一个良好的开端: What alternatives are there to ClickOnce?

答案 1 :(得分:0)

我有一次类似的情况。我发现在Visual Studio中自定义输出路径等比我想要的更麻烦。

我最终让Visual Studio在文件/项目结构方面做了自己的事情,并编写了一个后期构建脚本,将所需的所有内容复制到最终的“发布就绪”目录中。

然后我将Visual Studio中的执行目标设置为新位置,因此我可以像往常一样运行/调试,但是使用组织的新文件夹我是如何需要它的。小心,我认为这是用户项目设置;因此,如果他们愿意,其他开发人员也需要在他们的机器上执行此操作。

我确实记得改变一些输出路径,以使后期构建脚本更简单。但是,当您向解决方案添加新项目时,更改此类内容可能会导致烦恼;您可能需要将它们配置为匹配。这都是一种权衡:)

答案 2 :(得分:0)

两个想法:

  • 也许您可以将资源转移到另一个项目 - 一个仅用于资源的项目 - 然后将Build Action设置为ContentCopy To Output设置为true。然后参考这个新项目并构建解决方案。 (这可能不是你想要的,只是一个想法)。
  • 为什么不改为使用资源嵌入资源。将它们全部保存在Resources\目录中并以编程方式访问它们?