首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参考文献.NET

参考文献.NET
EN

Stack Overflow用户
提问于 2015-02-20 10:49:16
回答 4查看 282关注 0票数 0

我有一个项目(A),将开发一个记录器系统。这个项目将用于其他项目。在项目A中,有两个引用在编译时没有使用。

当我在任何项目中向项目A添加引用时,都不会导入引用,但在运行时需要它们。

我看到了两种解决方案:

( a)使用虚拟代码在编译时强制复制。这个解决方案似乎不雅观。

( b)在其他项目中添加参考资料。此解决方案强制始终引用DLL。

是否有任何办法强制复制引用?

非常感谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-02-20 10:56:50

尝试更改项目A中指定引用的复制本地属性

编辑作为这种情况的解决方案:

如果您在编译时没有使用这些引用,那么应该添加特定的dll文件(添加现有项),作为Build中的内容,并在项目A中使用Copy选项。当项目A获得生成时,这些文件将是生成输出。通过这种方式,可以从引用项目A的其他项目中访问文件

票数 1
EN

Stack Overflow用户

发布于 2015-02-20 10:51:46

考虑为您的项目制作一个NuGet包。NuGet包可以发布所需的运行时库,并将它们添加到目标项目中(尽管我认为您可能需要使用PowerShell脚本来实现这一点)。

然后,可以在目标项目中使用“管理NuGet引用”来添加“项目A”,并让NuGet安装脚本添加“仅运行时”库引用。

请记住,您可以在内部托管您自己的NuGet包,它们不需要发布到在线库。我们将这种方法用于内部共享项目,因为它使依赖关系管理和版本控制变得非常简单和合理,并在源代码管理的范围内保持每个项目的严格范围。

票数 1
EN

Stack Overflow用户

发布于 2015-02-20 10:57:07

可以在运行时使用反射加载程序集:

代码语言:javascript
复制
 Assembly assembly = Assembly.LoadFile(path);

 Type t = assembly.GetType("YourClassName");

 object instance = Activator.CreateInstance(t);

 int parameter1 = 1;

 object result = t.GetMethod("The MethodName").Invoke(instance, new object[] { parameter1, "Something" });

不过有点麻烦。

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

https://stackoverflow.com/questions/28627142

复制
相关文章

相似问题

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