复制第三方依赖于构建//构建后事件不起作用//任何替代方案?

时间:2017-01-28 19:18:36

标签: c# .net dll deployment xcopy

我有一个依赖第三方API的.NET解决方案。 API似乎主要是依赖于其他文件(sqlite,dll,license等)的接口。第三方类在我的许多项目中使用,似乎必须与我的最终可执行文件位于同一位置。

第三方目录看起来大致如下:

RootDirectory
     File1.dll
     File2.dll
     Subdirectory
          FileA
          Subsubdirectory
               FileB
               FileC
               etc.

在构建时,应用程序必须看起来像这样,否则API不起作用:

MyApp.exe
ThirdPartyAPI.dll
File1.dll
File2.dll
Subdirectory
     FileA
     Subsubdirectory
          FileB
          FileC
          etc.

我希望将依赖文件结构保持在名为[SolutionDir] \ RootDirectory的位置,并让它们根据需要简单地复制到我的构建中。我似乎遇到的问题是我在编译时无法从RootDirectory复制文件。如果我尝试删除我的bin,它会说File1和File2正在使用中,所以我假设它已经成功了。

我尝试使用这个帖子构建事件:      xcopy" $(SolutionDir)RootDirectory \" " $(TARGETDIR)" / s / e / h 它有时会起作用,其他时候也会失败,而且还没有找到原因。

有任何想法或其他想法吗?

1 个答案:

答案 0 :(得分:0)

在visual studio中,您可以将解决方案文件链接到项目。
只需将第三方文件添加为解决方案文件,然后按住ALT键将它们拖到构建最终可执行文件的项目中并将其删除。
如果操作正确,这些文件将有一个小的蓝色图标。
最后,更改他们的"复制到输出目录"属性为"如果更新则复制"。

构建项目时,这些文件将被复制到输出目录。