将dll文件复制到ClickOnce部署中的.exe目录

Copy dll files to .exe directory in ClickOnce deployment

本文关键字:exe 目录 部署 ClickOnce dll 文件 复制      更新时间:2023-10-16

我的。net项目依赖于一堆本地dll库,这些库应该复制到与。exe文件相同的目录中。Dll文件被添加到主项目的"ExternalDependencies"文件夹中,并在自定义构建后操作时复制到输出文件夹。

当我用ClickOnce工具发布我的应用程序时,所有dll都放在ExternalDependencies/相对路径中,而不是在与exe相同的目录中。

我不想把库放在项目的根目录下,但是我必须找到一种在安装过程中改变相对路径的方法。我发现没有办法做到这一点,除了手动生成清单:https://msdn.microsoft.com/en-us/library/xc3tc5xx.aspx

也许我错过了什么?有更简单的方法吗?

好了,我明白了。这篇博文描述了项目文件隐藏的可能性,它允许我做我想做的事情:http://blogs.msdn.com/b/mwade/archive/2008/06/29/how-to-publish-files-which-are-not-in-the-project.aspx

基本上,如果你想要一个自定义路径,你应该为你将要部署的每个文件添加一个项目文件:

<ItemGroup>
<PublishFile Include="ExternalDependenciesDSAPI.dll">
  <Visible>False</Visible>
  <Group>
  </Group>
  <TargetPath>DSAPI.dll</TargetPath>
  <PublishState>Include</PublishState>
  <IncludeHash>True</IncludeHash>
  <FileType>File</FileType>
</PublishFile>

TargetPath属性是我正在寻找的。很遗憾你不能从VS UI更改它!