C# 参考文献.NET
我有一个项目(A)将开发一个记录器系统。此项目将用于其他项目。在项目A中,有两个引用没有在编译时使用 当我将任何项目中的引用添加到项目a时,不会导入引用,但我需要在运行时使用它们 我看到了两种解决方案: a) 使用伪代码在编译时强制复制。这个解决方案似乎不雅观 b) 在其他项目中添加引用。此解决方案强制始终引用DLL 有没有办法强制复制引用 非常感谢考虑为您的项目制作一个包。NuGet包可以提供运行时所需的库,并将它们添加到目标项目中(尽管我认为您可能需要使用脚本来实现这一点) 然后,您可以在目标项目中使用“管理NuGet引用”来添加“项目A”,并让NuGet安装脚本添加“仅运行时”库引用C# 参考文献.NET,c#,.net,dll,reference,C#,.net,Dll,Reference,我有一个项目(A)将开发一个记录器系统。此项目将用于其他项目。在项目A中,有两个引用没有在编译时使用 当我将任何项目中的引用添加到项目a时,不会导入引用,但我需要在运行时使用它们 我看到了两种解决方案: a) 使用伪代码在编译时强制复制。这个解决方案似乎不雅观 b) 在其他项目中添加引用。此解决方案强制始终引用DLL 有没有办法强制复制引用 非常感谢考虑为您的项目制作一个包。NuGet包可以提供运行时所需的库,并将它们添加到目标项目中(尽管我认为您可能需要使用脚本来实现这一点) 然后,您可以在目
请记住,您可以在内部托管您自己的NuGet软件包,它们不需要发布到在线库。我们对内部共享项目使用这种方法,因为它使依赖关系管理和版本控制非常简单和合理,并且在源代码管理过程中保持每个项目的严格范围。尝试更改项目A中指定引用的py本地属性 编辑此案例的解决方案:
如果在编译时没有使用这些引用,那么应该 将特定dll文件(添加现有项)作为内容添加到生成中 操作,并使用“始终复制”选项(在项目A中)。当项目 获取构建时,这些文件将成为构建输出。通过这种方式,您可以 访问引用项目A的其他项目中的文件
可以使用反射在运行时加载程序集:
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" });
不过有点麻烦。也许可以尝试解决问题的根源-为什么不添加对实际使用它们的项目的引用?在生成操作后使用visual studio编译器将dll复制到运行时或dll目录是另一种解决方案。例如,这是使用prism时的常见做法。它显示了现在,您只需要复制文件。您只需使用project+添加现有项将其添加到项目中,并将其“复制到输出目录”属性设置为“如果较新,请复制”“。如果您不喜欢混乱,那么在生成后事件中使用XCOPY/d也可以。很抱歉,在其他项目中添加dll作为引用有什么问题?问题是关于知识。如果我指的是组件A,那么当从项目B中指代它时,我是否需要知道组件A需要哪些其他组件才能正常工作?如果我已经将应用程序分为数据访问层、业务逻辑层、用户界面层,为什么我需要为用户界面层添加引用,以确保包含数据访问层所需的所有必要程序集?我为什么要这么做?我应该只需要添加对我的业务逻辑层的引用,并自动带来依赖项。Copy Local为true,它是在项目a的bin中生成的。但它不会出现在项目BIf中。如果在编译时未使用这些引用,则应添加特定的dll文件(添加现有项),作为构建操作中的内容,并使用“始终复制”选项(在项目A中)。当项目获得构建时,这些文件将成为构建输出。通过这种方式,您可以访问引用project ANaumand的其他项目的文件,这是一个很好的解决方案!!我可以将其添加为现有项。非常感谢。