标签: .net-4.0

在C#中读取打开的文件问题

嗨,我有一个程序,在特定路径的文本文件中记录一些数据.(log.txt)我可以用记事本打开文件(log.txt)并读取其中的内容.

现在我正在编写一个程序来读取log.txt,但是我得到了异常"进程无法访问文件'log.txt',因为它正被另一个进程使用."

我该怎么办?

.net c# .net-4.0 visual-studio-2010

4
推荐指数
1
解决办法
2565
查看次数

如何使用C#和.net 4内置图表控件绘制图表?

如何使用C#和.net 4内置图表控件绘制与图片上的图表完全相同的图表?重要的是X轴和Y轴以及那里的标记,我不想要任何图形线,只需要空图表.

替代文字

我非常感谢代码snipet.最好的问候,Primoz.


编辑:我遇到的问题

  • 不知道如何在拐角处放置摄氏度的标志
  • 不知道如何在X轴上以四小时为间隔放置日期和时间

我正在使用win form和bult-in chart控件.

.net c# charts .net-4.0

4
推荐指数
1
解决办法
1万
查看次数

我应该配置System.Windows.Media.Pen吗?

我应该处理System.Windows.Media.Pen吗?

通常调用a的Dispose方法System.Drawing.Pen.

.net c# wpf .net-4.0 c#-4.0

4
推荐指数
1
解决办法
529
查看次数

.net4新的无pia功能的优势[部署PIA]

它可能我只是在这里遗漏了一些东西但是,当我为Excel互操作编写一些代码时,它是如何进行的.

  • 我添加了对Excel Com库的引用.
  • VS创建一个PIA - Microsoft.Office.Interop.Excel ....(通过tlbimp对吗?).
  • 我将exe和interop(PIA)dll复制到任何机器(带.net)并且它有效吗?

是否存在我必须部署/注册PIA的情况?或者我在这里遇到了什么问题,因为在我看来,将PIA嵌入主程序集似乎不是一个很大的功能?

请原谅我的无知,如果有的话.


更新:
所以我做了一些测试,我写了一个打开excel的应用程序在单元格中添加"hello"并保存文件.

我在安装了Office 2003的Win7 Dev机器上构建它(所以我引用了2003 libs).有趣的是,没有嵌入式PIA,该应用程序为9KB(3 PIA总计高达1.32MB).使用嵌入式PIA,exe为13KB.

其次,通过嵌入式PIA,该应用程序在Office 2007和2010上运行.没有嵌入式PIA的情况下,在WinXP + Office2007上,只有当PIA不在exe目录中时它才会失败.

所以我想无论采用何种方法,都有某种动态分辨率?然后为什么它在没有PIA的exe7目录中的Win7上运行,但是在WinXP上它失败了(只有当PIA没有在exe的目录中时),Win7盒子是否在全球范围内部署了PIA?

谢谢
基甸

.net com-interop .net-4.0 pia office-interop

4
推荐指数
2
解决办法
2268
查看次数

在.NET 4中不使用TypedTableBase的类型化数据集

我正在将我们的DAL类库迁移到.NET 4(从.NET 3.5).我们经常使用类型化数据集,我们经常迭代表:

foreach(var row in ds.MyTable) var tmp = row.ID;
Run Code Online (Sandbox Code Playgroud)

这不再起作用,因为设计人员更改了数据集的代码,以便表格不再来自TypedTableBase<T>,而是来自DataTable(并实现非泛型IEnumerable).这就是差异所显示的.因此,该行在object编译时是类型的.

有人知道这是否是通常的行为?目前,我正在按照下面所示的方式进行,但我希望有一个更优雅的解决方案:

foreach(var row in ds.MyTable.Cast<MyDs.MyRow>()) var tmp = row.ID;
Run Code Online (Sandbox Code Playgroud)

c# .net-4.0 dataset strongly-typed-dataset

4
推荐指数
2
解决办法
3998
查看次数

PROMOTE TRANSACTION请求失败,因为没有活动的本地事务

在什么情况下我会看到上述消息?我只有一次调用SQL Server,它包含在对TransactionScope的调用中.在我们的开发和QA环境中,MSDTC被关闭,呼叫成功.但是,在我们打开MSDTC的生产环境中,我们没有通过此调用.当我确定我们根本没有查看分布式事务调用时,是否会出现这种情况?

msdtc .net-4.0 transactionscope

4
推荐指数
1
解决办法
2585
查看次数

获取处理器ID或某些硬件信息的最安全方法

我需要获取任何信息以识别机器,到目前为止我使用的是以下内容:

    internal static string GetProcessorId()
    {
        try
        {
            StringBuilder sb = new StringBuilder();
            using (System.Management.ManagementClass theClass = new System.Management.ManagementClass("Win32_Processor"))
            {
                using (System.Management.ManagementObjectCollection theCollectionOfResults = theClass.GetInstances())
                {
                    foreach (System.Management.ManagementObject currentResult in theCollectionOfResults)
                    {
                        sb.Append(currentResult["ProcessorID"].ToString());
                    }
                }
            }
            return sb.ToString();
        }
        catch (Exception exception)
        {
            Console.WriteLine(exception.Message);
            return "";
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是当我在Windows XP(从虚拟机)上运行它时,我currentResult["ProcessorID"]就是null.我不确定是不是因为我使用的是虚拟机,但可能是因为它是XP.无论如何,我不太相信这段代码.它足够安全吗?我应该以其他方式获得计算机ID吗?这是我正在开发的许可系统的一部分.

.net c# .net-4.0

4
推荐指数
1
解决办法
2万
查看次数

在NETFX 4.0工具之外运行sn.exe时遇到问题

有没有人弄清楚为什么.net 4.0的sn.exe崩溃如果在外面运行崩溃C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0 Tools\ ?(使用Windows XP,32位)

Visual Studio 2010工作得很好,sn工作在NETFX 4.0工具中(直接调用或在PATH上调用).

.net 3.5版本(来自..\Bin)工作正常,可以移动.

我只是试图获得一个自动构建,但似乎sn.exe需要住在它的位置......这可能是什么?我错过了一些明显的东西吗

.net .net-4.0 sn.exe

4
推荐指数
1
解决办法
1274
查看次数

塞拉塞拉,色拉!Net Framework 4.0对SQL 2008的支持?

我做了很多工作来开发CLR例程来实现DAL功能,使用VS2010打算将它们移植到SQL2008R2 clr程序集; 单元测试了,一切似乎都没问题.然后是将它们放入SQL CLR程序集的那一天..唉!,SQL2008只支持低于框架3.5的程序集!采用c#4.0功能的日子现在必须被丢弃并滑回c#2.0.花了很多天.

我可以将Framework 4 CLR程序集与SQL2010一起使用吗?

SQL2008R2中是否支持框架4.0支持?如果是的话?

c# sqlclr .net-4.0 sql-server-2008

4
推荐指数
1
解决办法
1752
查看次数

使用部分源代码反编译C#Exe

我在工作中维护一个C#程序,由于硬盘崩溃,我已经丢失了一大堆已经部署的版本的代码(这是我自己的错误,因为我没有经常推送git存储库)现在我必须做一些更改该程序.我有程序的旧版本的源代码,我想反编译exe并将其与旧源合并以恢复丢失的代码.

我知道我可以使用像反射器这样的工具反编译,但我不想手动将它与旧代码合并,因为我可以再次编码更改(大约1-2天的工作).这是可能的还是我必须手动完成代码转储?

c# reflector .net-4.0

4
推荐指数
1
解决办法
789
查看次数