将 dll 文件复制到 ClickOnce 部署中的 .exe 目录
Copy dll files to .exe directory in ClickOnce deployment
我的 .NET 项目依赖于一堆本机 dll 库,这些库应该复制到与 .exe 文件相同的目录中。 DLL 文件被添加到主项目的 "ExternalDependencies" 文件夹,并在自定义 post-build 操作时被复制到输出文件夹。
当我使用 ClickOnce 实用程序发布我的应用程序时,所有 dll 都放在 ExternalDependencies/ 相对路径中,而不是与 exe 位于同一目录中。
我不想将库放入项目的根目录,但我必须找到一种在安装过程中更改相对路径的方法。
我找不到这样做的方法,除了手动生成清单:https://msdn.microsoft.com/en-us/library/xc3tc5xx.aspx
也许我遗漏了什么?有更简单的方法吗?
好的,明白了。此博客 post 描述了项目文件的隐藏可能性,这些文件允许做我想做的事:http://blogs.msdn.com/b/mwade/archive/2008/06/29/how-to-publish-files-which-are-not-in-the-project.aspx
基本上,如果您想要一个自定义路径,您应该为每个要部署的文件添加一个项目到您的项目文件中:
<ItemGroup>
<PublishFile Include="ExternalDependencies\DSAPI.dll">
<Visible>False</Visible>
<Group>
</Group>
<TargetPath>DSAPI.dll</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>File</FileType>
</PublishFile>
TargetPath
属性 是我要找的。很遗憾你不能从 VS UI!
更改它
我的 .NET 项目依赖于一堆本机 dll 库,这些库应该复制到与 .exe 文件相同的目录中。 DLL 文件被添加到主项目的 "ExternalDependencies" 文件夹,并在自定义 post-build 操作时被复制到输出文件夹。
当我使用 ClickOnce 实用程序发布我的应用程序时,所有 dll 都放在 ExternalDependencies/ 相对路径中,而不是与 exe 位于同一目录中。
我不想将库放入项目的根目录,但我必须找到一种在安装过程中更改相对路径的方法。 我找不到这样做的方法,除了手动生成清单:https://msdn.microsoft.com/en-us/library/xc3tc5xx.aspx
也许我遗漏了什么?有更简单的方法吗?
好的,明白了。此博客 post 描述了项目文件的隐藏可能性,这些文件允许做我想做的事:http://blogs.msdn.com/b/mwade/archive/2008/06/29/how-to-publish-files-which-are-not-in-the-project.aspx
基本上,如果您想要一个自定义路径,您应该为每个要部署的文件添加一个项目到您的项目文件中:
<ItemGroup>
<PublishFile Include="ExternalDependencies\DSAPI.dll">
<Visible>False</Visible>
<Group>
</Group>
<TargetPath>DSAPI.dll</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>File</FileType>
</PublishFile>
TargetPath
属性 是我要找的。很遗憾你不能从 VS UI!