首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组织属地

组织属地
EN

Stack Overflow用户
提问于 2013-11-14 22:15:02
回答 1查看 84关注 0票数 0

我试图在Visual解决方案中组织我的非托管.dll依赖项,但是除非.dll分布在解决方案的顶层,否则它们不会内置到应用程序的目录中,然后应用程序就无法运行。我在这个问题上做了很多谷歌搜索,似乎有一个以app.config设置的形式出现的解决方案:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <runtime>
    <assemblybinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatepath="lib" />
    </assemblybinding>
  </runtime>
</configuration>

我的解决方案中有一个名为"lib“的文件夹,对于文件夹中的所有文件,Copy设置为true,但应用程序仍然无法运行。如何在不破坏应用程序的情况下组织Visual解决方案?

EN

回答 1

Stack Overflow用户

发布于 2013-11-14 23:32:04

我发现解决这个问题的唯一方法是通过windows .bat文件。如果有办法将额外的搜索路径编码到非托管可执行文件中,我想知道!

以下是我所做工作的一个例子:

代码语言:javascript
复制
SET PATH=$~dp0plugins\MY_PLUGIN\Debug;%PATH%
vcvars32.bat
devenv build\MY_PROJECT.sln

第一行添加了我希望在哪里找到dll的路径。

第二行确保“右”视频工作室将打开。如果我的环境设置为VS2010,我不希望默认情况下打开VS2012。

最后一行调用IDE来打开我的sln文件。

现在打开的visual有一个路径,可以找到我的一个插件的Debug文件夹。调试应用程序时,将找到、加载和调试正确的dll,没有问题--我在Debug->Windows->Modules面板下验证了这一点。

这只适用于调试配置。如果我想运行发行版配置,我将.bat文件更改为“release”,关闭Visual并重新运行.bat文件。

我在运行可执行文件时应用了相同的模式。设置我希望dll来自的环境,然后执行我的可执行文件:

代码语言:javascript
复制
SET PATH=$~dp0plugins\Debug;%PATH%
... Repeat for other dll locations
"%~dp0Debug\MY_EXECUTABLE.exe" %*

SS64是一种宝贵的资源,可以用来计算在.bat文件中可以做什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19989555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档