Tag: dependencies

组织依赖项目的最佳方式?

我有一组依赖于其他项目的项目(你可以说实用程序),问题是我每次更改这些实用程序中的任何一个的代码时,我的同事需要采用最新的代码并在他们的机器上构建以使用最新的组件。 有一个很好的标准解决方案吗? 或者只是将dll集中在共享文件夹上? PS: 我们正在使用MS source safe 2005,我不希望我的同事每次都使用源代码并在他们的机器上构建,因为他们只需要二进制文件而不是代码。

在C ++ / CLI项目中识别有问题的依赖项

我的应用程序编译正常,但我得到以下运行时错误: System.IO.FileNotFoundException was unhandled HResult=-2147024770 Message=Could not load file or assembly {Wrapper} or one of its dependencies. The specified module could not be found. 调用Application中对Wrapper的引用看起来是正确的。 Wrapper dll存在于正确的位置。 这个项目用于在别人的系统上构建和运行,我看了几次。 该人/计算机不再可用。 自上次成功构建和运行以来,某些依赖项的某些路径已发生更改,我已修复了与此相关的所有编译错误。 只是为了澄清我的项目结构: Digraph G { App [ label = “My C# Application”] Wrapper [ label = “C++/CLI Wrapper”] Lib [ label = “C++ Library”] Dll [ […]

为具有多个项目的解决方案创建nuget包

我们目前正在构建包含多个项目的解决方案。 我们有这样的事情: – Common – Logging – Logging.NLog – Threading 所以Logging.NLog依赖于Logging,Logging on Common等。 当我们打包Logging.NLog时,我希望nuget能够发现Loggin和Common dependecies。 此刻,我用Common创建了一个包,然后在Logging中我安装了包Common install-package Common 但每当我对Common进行修改时,我都必须更新包,它们是由我们的连续集成系统(Hudson)创建的,所以当我们开发时它非常烦人。 我想简单地有一个项目参考(添加引用 – >项目…),并且nuget无论如何都会发现依赖项。 有没有办法实现它?

NAudio错误:“NoDriver调用acmFormatSuggest”

我有一个使用NAudio从mp3转换为wav的项目。 (使用WaveFormatConversionStream.CreatePcmStream()方法) 它在我的开发机器上工作正常,但现在我在一个新的服务器上尝试它并抛出这个错误: NAudio.MmException:NoDriver调用acmFormatSuggest 在NAudio.MmException.Try(MmResult结果,字符串函数) at NAudio.Wave.Compression.AcmStream.SuggestPcmFormat(WaveFormat compressedFormat) 在NAudio.Wave.WaveFormatConversionStream.CreatePcmStream(WaveStream sourceStream) 我假设NAudio需要一些不在新服务器上的依赖。 它是什么,我应该从哪里安装它? Server是一个新设置的Amazon EC2 Windows 2008 32位实例,安装了“Web服务器”和“应用服务器”角色。

C#中的静态构造函数/初始化程序的顺序

在使用C#应用程序时,我只是注意到在几个地方静态初始化程序彼此依赖,如下所示: static private List a = new List() { 0 }; static private List b = new List() { a[0] }; 没有做任何有用的特殊工作。 这只是运气吗? C#有解决这个问题的规则吗? 编辑:( re:Panos)在一个文件中,词汇顺序似乎是王道? 跨文件怎么样? 在寻找我尝试这样的周期性依赖: static private List a = new List() { b[0] }; static private List b = new List() { a[0] }; 并且该程序没有运行相同(测试套装全面失败,我没有看得更远)。

如何从C#访问C ++ / CLI中的类?

我正在用C#编写GUI工具来解析和显示用C编写的另一个程序的数据输出。为了解析数据,我需要知道在多个C头文件中指定的数据结构。 因此,我需要将这些C头文件合并到我的C#项目中。 我的问题是: 1)经过一些研究后我得出结论,最好的方法是在我的解决方案中创建一个新的C ++ / CLI项目,将C头文件导入到这个新项目中,编写一些C ++ / CLI类作为数据的薄包装器在C头文件中定义的结构,然后从C#代码引用C ++ / CLI包装器类。 这是最好的方法,还是有更好的方法? 2)我遇到了参考问题。 这是我的简化代码来说明问题: C ++ / CLI项目中的原始C头 #define ABC 0x12345 C ++ / CLI项目中的包装类 #include “my_c_header.h” namespace C_Wrappers { public ref class MyWrapper { public: property unsigned int C_ABC { unsigned int get() { return ABC; } } } } C#项目中的用户类 using […]

为什么我(有时)必须引用我引用的程序集引用的程序集?

我有一个程序集A,它定义了一些带有一些重载的接口: public interface ITransform { Point InverseTransform(Point point); Rect InverseTransform(Rect value); System.Drawing.Point InverseTransform(System.Drawing.Point point); } …以及引用A(二进制文件而不是项目)的程序集B并调用其中一个重载: var transform = (other.Source.TransformToDisplay != null && other.Source.TransformToDisplay.Valid) ? other.Source.TransformToDisplay : null; if (transform != null) { e.Location = transform.InverseTransform(e.Location); } 确切地说,它调用InverseTransform方法的System.Windows.Point重载,因为这是e属性Location的类型。 但是当我在IDE中构建B时,我得到: 错误CS0012:类型’System.Drawing.Point’在未引用的程序集中定义。 您必须添加对程序集’System.Drawing,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a’的引用。 即使这甚至不是我所说的过载。 当我注释掉调用重载方法InverseTransform ,即使我仍在实例化ITransform类型的对象,它也能正常构建。 为什么? 有没有办法解决这个问题,而无需在任何地方添加对System.Drawing的引用?

Newtonsoft.json汇编包版本不匹配

我正在尝试使用SocketIO4Net在.net中创建socket.io客户端。 看来SocketIO4Net依赖于Newtonsoft.Json> = 4.0.8。 我也在使用PushSharp库,其Newtonsoft.Json依赖关系> = 4.5.10。 当我第一次安装PushSharp时,我得到了NewtonSoft.Json 4.5.11,我认为这个版本应该支持SocketIO4Net,因为它的版本更高,但每当我尝试连接到socket.io服务器时都会收到此错误。 无法加载文件或程序集’Newtonsoft.Json,Version = 4.0.8.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed’或其中一个依赖项。 定位的程序集的清单定义与程序集引用不匹配。 (HRESULTexception:0x80131040) 我一直在为这些依赖性问题敲打我的脑袋,如果有人能指出我正确的方向,我将非常感激。

循环依赖

我有2个项目。 项目#2引用了项目#1 现在我需要在Project#1中引用Project#2,但是vs.net抱怨循环依赖。 有没有办法解决这个问题?