我的.NET项目依赖于一堆原生dll库,这些库应该被复制到与.exe文件相同的目录中。 Dll文件被添加到主项目中,以及#34; ExternalDependencies"文件夹,并在自定义的构建后操作时复制到输出文件夹。
当我使用ClickOnce实用程序发布我的应用程序时,所有dll都放在ExternalDependencies / relative路径中,而不是放在与exe相同的目录中。
我不想将库放到项目的根目录中,但我必须找到一种方法来在安装过程中更改相对路径。 除了手动清单生成外,我发现无法做到这一点:https://msdn.microsoft.com/en-us/library/xc3tc5xx.aspx
也许我错过了什么?有更简单的方法吗?
答案 0 :(得分:0)
好的,想通了。这篇博文描述了项目文件隐藏的可能性,它们可以做我想做的事: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中改变它!