2009-10-05 74 views
0

其实我用我的项目引用两个外部DLL。 我想网络建立参考路径,但迫使c#在我的应用程序路径中搜索DLL。从app.config的DLL参考?

我在myapp“.netlibs”中创建了一个文件夹,并在那里放入了我的dll,并将它们从References部分中删除。

我把这个的app.config:

<runtime> 
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <probing privatePath=".netlibs" /> 
</assemblyBinding> 

但它不工作?

如果我错过了什么,你知道吗?

在此先感谢。

+0

请描述“不工作”。你有错误吗?如果你不再引用它们,你如何加载它们?请给我们看一些代码。 – 2009-10-05 08:29:08

+0

嗨拉尔斯。我的意思是它试图编译时给我错误。无法找到类型或名称空间“xxxxxx”.... – 2009-10-05 08:32:44

回答

0

装配探测仅在运行时可用。在编译时,您总是需要在项目中引用外部程序集。

我可以从你的评论中了解到,你正在尝试编译你的项目没有参考。

评论后编辑:把常见的引用放在源代码管理中,在更高级别的某个地方引用它们。如果您在创建引用后打开csproj文件,则路径应该是动态的,例如:../../References/MyReference.dll。每个开发者都应该做一个最新的程序集。

另一种选择是将它们放入每台开发人员机器上的GAC中。

+0

嗨Gerrie.You对我的编译是正确的。如果我把一个参考如:c:\ develop \ myapp \ .netlibs \ CSzip.dll编译并运行就可以了。但是,如果我的同事把我的项目放在:c \ dev \ myapp,那么引用将不再一样:那么他将如何编译和运行该项目? – 2009-10-05 08:51:16

+0

好的,谢谢你的额外信息。 – 2009-10-05 09:03:55

+0

谢谢。将dlls的文件夹放入应用程序根目录并添加对它的引用是非常好的主意。 – 2009-10-05 10:09:02