Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发布的项目产生错误“;调用线程必须是STA,因为许多UI组件都需要此;在DLL中创建位图时_C#_Vb.net_Release - Fatal编程技术网

C# 发布的项目产生错误“;调用线程必须是STA,因为许多UI组件都需要此;在DLL中创建位图时

C# 发布的项目产生错误“;调用线程必须是STA,因为许多UI组件都需要此;在DLL中创建位图时,c#,vb.net,release,C#,Vb.net,Release,我有一个项目,当调试工作得非常好,并已将所有内容正确地检查到TFS。当发布的项目调用dll时,我收到上面的错误消息。主项目也是用vb编写的 这是堆栈跟踪 在for each循环的开头导致代码行出错-Bitmap bmp=new Bitmap(Bitmap.FromFile(targetPath+“Copy-2.png”) 大部分DLL的代码- public Dictionary<string, MemoryStream> CreateW2FromBitmap(List<

我有一个项目,当调试工作得非常好,并已将所有内容正确地检查到TFS。当发布的项目调用dll时,我收到上面的错误消息。主项目也是用vb编写的

这是堆栈跟踪

在for each循环的开头导致代码行出错-
Bitmap bmp=new Bitmap(Bitmap.FromFile(targetPath+“Copy-2.png”)

大部分DLL的代码-

    public Dictionary<string, MemoryStream> CreateW2FromBitmap(List<Employee> info, Employer employerInfo, bool fourPerPage)
    {
        var targetPath = System.IO.Path.GetFullPath(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..\\..\\" + "W2Images\\"));

        StringFormat rightAlign = new StringFormat(StringFormatFlags.NoClip);
        StringFormat centerAlign = new StringFormat(StringFormatFlags.NoClip);
        PdfPTable imageTable = new PdfPTable(2) { WidthPercentage = 82 };

        imageTable.DefaultCell.Border = iTextSharp.text.Rectangle.NO_BORDER;
        imageTable.DefaultCell.HorizontalAlignment = Element.ALIGN_CENTER;
        rightAlign.Alignment = StringAlignment.Far;
        centerAlign.Alignment = StringAlignment.Center;

        var brushColor = Brushes.Black;
        var W2ImageDictionary = new Dictionary<string, MemoryStream>();
        var font = new System.Drawing.Font("Courier", 12);
        var document = new Document(PageSize.LETTER, 0, 0, 10, 0);

        foreach (var property in info)
        {
            Bitmap bmp = new Bitmap(Bitmap.FromFile(targetPath + "Copy-2.png"));
            MemoryStream tempImageStream = new MemoryStream();

            var writer = PdfWriter.GetInstance(document, tempImageStream);
            var employeeCityStateZipCode = CityStateZipDelimiter(property.CityStateZip);
            var employerCityStateZipCode = CityStateZipDelimiter(employerInfo.CityStateZip);

            document.Open();
            writer.CloseStream = false;

            for (int i = 1; i < 5; i++)
            {
                switch (i)
                {
                    case 1:
                        bmp = new Bitmap(Bitmap.FromFile(targetPath + "Copy-2.png"));
                        break;
                    case 2:
                        bmp = new Bitmap(Bitmap.FromFile(targetPath + "Copy-2.png"));
                        break;
                    case 3:
                        bmp = new Bitmap(Bitmap.FromFile(targetPath + "Copy-B.png"));
                        break;
                    case 4:
                        bmp = new Bitmap(Bitmap.FromFile(targetPath + "Copy-B.png"));
                        break;
                }
公共字典CreateW2FromBitmap(列表信息、雇主雇员信息、bool fourPerPage)
{
var targetPath=System.IO.Path.GetFullPath(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory,“…\ \ \ \ \ \ \”+“W2Images\”);
StringFormat rightAlign=新的StringFormat(StringFormatFlags.NoClip);
StringFormat centerAlign=新的StringFormat(StringFormatFlags.NoClip);
PdfPTable imageTable=新PdfPTable(2){宽度百分比=82};
imageTable.DefaultCell.Border=iTextSharp.text.Rectangle.NO_Border;
imageTable.DefaultCell.HorizontalAlignment=Element.ALIGN\u CENTER;
rightAlign.Alignment=StringAlignment.Far;
centerAlign.Alignment=StringAlignment.Center;
var brushColor=画笔。黑色;
var W2ImageDictionary=新字典();
var font=新系统.Drawing.font(“Courier”,12);
var文档=新文档(PageSize.LETTER,0,0,10,0);
foreach(信息中的var属性)
{
位图bmp=新位图(Bitmap.FromFile(targetPath+“Copy-2.png”);
MemoryStream tempImageStream=新的MemoryStream();
var writer=PdfWriter.GetInstance(文档,tempImageStream);
var employeeCityStateZipCode=CityStateZipDelimiter(property.CityStateZip);
var employerCityStateZipCode=CityStateZipDelimiter(employerInfo.CityStateZip);
document.Open();
writer.CloseStream=false;
对于(int i=1;i<5;i++)
{
开关(一)
{
案例1:
bmp=新位图(Bitmap.FromFile(targetPath+“Copy-2.png”);
打破
案例2:
bmp=新位图(Bitmap.FromFile(targetPath+“Copy-2.png”);
打破
案例3:
bmp=新位图(Bitmap.FromFile(targetPath+“Copy-B.png”);
打破
案例4:
bmp=新位图(Bitmap.FromFile(targetPath+“Copy-B.png”);
打破
}

修复程序正在更改图像的存储位置。它们位于主应用程序的文件夹中。希望这对将来的任何人都有帮助


Bitmap bmp=新位图(Bitmap.FromFile(“C:\\Copy-2.png”);

是调用线程STA?调用项目是什么类型的项目(WPF?Winforms?ASP.NET?其他什么?)?能否在帖子中包含异常的堆栈跟踪?我为调用添加了堆栈跟踪,但我只在运行应用程序时遇到此问题,而不是在visual studio中运行时遇到此问题。我非常确定DLL最初是一个WPF,但现在是一个具有零WPF功能的类库。主项目是一个表单,图像存储在其中在主项目的文件夹中有一个WPF异常。该异常发生在名为EmailReport()的方法中,由BackgroundWorker调用。代码段中的代码与此无关。的可能重复